protobuf---真正-- 在IOS中的使用
2016-05-13 00:27
573 查看
转自 http://blog.sina.com.cn/s/blog_74e9d98d0101jood.html
1.首先要下载下载Protocol Buffers:http://code.google.com/p/metasyntactic/downloads/list
下2.2.0版,下了这个就不用再单独下载protobuf的官方版本了(仅支持java、c++、phtoy的)
2.解压,用命令行切换至ProtocolBuffers-2.2.0-Source目录下:
./autogen.sh
./configure
(如果说没有权限,chmod +x configure)
make(之前一直在此处make出错,经google,需修改/Applications/ProtocolBuffers-2.2.0-Source/src/google/protobuf/message.h文件,添加
,修改如下:
3.至此就在src目录下生成了protoc工具,开始使用此工具:
whedeMac-mini:ProtocolBuffers-2.2.0-Source
whe$ src/protoc --objc_out=build/objc Person.proto(objc_out表示输出文件的目录)
注意哦!不能直接cd到protoc工具所在的目录(即src目录)中,然后再直接使用protoc,因为这本身不包含--objc_out选项的,一定要从它的上级目录中开始使用(或者是./protoc调用也可以,也代表先跳转到protoc的上级目录再使用protoc),这是因为在src目录下还有一系列文件是用来生成OC类的(输入src/protoc
--help命令便可以看到出现了--objc_out选项)
4.新建一个工程,将生成的person
OC版的文件导入,然后将ProtocolBuffers-2.2.0-Source/objectivec 下的文件放到项目的目录下,创建一个ProtobufLib文件夹,放进去,最好放在一个文件夹下面像这样
![](http://s10.sinaimg.cn/mw690/0028KbeJty6JE8epDi999&690)
之后把ProtocolBuffers.xcodeproj添加到项目中,配置像这样:
![](http://s14.sinaimg.cn/mw690/0028KbeJty6JIrhuIW1fd&690)
![](http://s2.sinaimg.cn/mw690/0028KbeJty6JE8GnDjPd1&690)
![](http://s10.sinaimg.cn/mw690/0028KbeJty6JE8GrI3Te9&690)
![](http://s6.sinaimg.cn/mw690/0028KbeJty6JE8GwRV3c5&690)
![](http://s11.sinaimg.cn/mw690/0028KbeJty6JE8GAdbcea&690)
ProtocolBuffers编译报错参考:https://code.google.com/p/metasyntactic/issues/detail?id=139
其他参考:http://www.cnblogs.com/uniy/archive/2011/12/21/2296405.html
http://blog.csdn.net/xinruiios/article/details/9168205 http://blog.csdn.net/hherima/article/details/17172441
1.首先要下载下载Protocol Buffers:http://code.google.com/p/metasyntactic/downloads/list
下2.2.0版,下了这个就不用再单独下载protobuf的官方版本了(仅支持java、c++、phtoy的)
2.解压,用命令行切换至ProtocolBuffers-2.2.0-Source目录下:
./autogen.sh
./configure
(如果说没有权限,chmod +x configure)
make(之前一直在此处make出错,经google,需修改/Applications/ProtocolBuffers-2.2.0-Source/src/google/protobuf/message.h文件,添加
#include
,修改如下:
#ifdef __DECCXX // HP C++'s iosfwd doesn't work.
#include
#else
#include
//#include//注释掉这个
#endif
另外,可能还会是其他错误,参考:https://code.google.com/p/protobuf/issues/detail?id=570
3.至此就在src目录下生成了protoc工具,开始使用此工具:
whedeMac-mini:ProtocolBuffers-2.2.0-Source
whe$ src/protoc --objc_out=build/objc Person.proto(objc_out表示输出文件的目录)
注意哦!不能直接cd到protoc工具所在的目录(即src目录)中,然后再直接使用protoc,因为这本身不包含--objc_out选项的,一定要从它的上级目录中开始使用(或者是./protoc调用也可以,也代表先跳转到protoc的上级目录再使用protoc),这是因为在src目录下还有一系列文件是用来生成OC类的(输入src/protoc
--help命令便可以看到出现了--objc_out选项)
4.新建一个工程,将生成的person
OC版的文件导入,然后将ProtocolBuffers-2.2.0-Source/objectivec 下的文件放到项目的目录下,创建一个ProtobufLib文件夹,放进去,最好放在一个文件夹下面像这样
之后把ProtocolBuffers.xcodeproj添加到项目中,配置像这样:
ProtocolBuffers编译报错参考:https://code.google.com/p/metasyntactic/issues/detail?id=139
其他参考:http://www.cnblogs.com/uniy/archive/2011/12/21/2296405.html
http://blog.csdn.net/xinruiios/article/details/9168205 http://blog.csdn.net/hherima/article/details/17172441
相关文章推荐
- iOS 获取手机的型号,系统版本,设备名称等
- Access restriction: The type 'AudioStream' is not
- [10秒学会] - iOS NSAttributedString 首行缩进
- iOS基础开发-自定义控件
- iOS开发-----KVC与KVO的区别
- iOS基础开发-字典转模型(模型思想)
- iOS基础开发-懒加载
- iOS开发设置textFiled的placeholder颜色
- iOS基础开发-九宫格显示数据页面
- iOS内存管理(ARC,MRC)
- ios自定义控件——星星评分控件
- iOS学习——self和super关键字的解析
- iOS学习- 01 程序模版
- iOS中KVC和KVO的区别
- iOS开发中的错误整理,关于用绑定Tag取控件的注意事项,有时候不绑定也是个错!
- ios最简单的播放音频程序
- iOS开发中的错误整理,(百思项目,指示器位置)设置控件尺寸和点坐标,先设置尺寸,再设置点坐标
- 一篇文章看懂iOS代码块Block
- iOS 文件直接从别的工程拖过来导致的问题
- cordova+ios插件