protobuf
是一种数据交换格式,类比于json
跟xml
。但是在等同的数据条件下,使用protobuf
会大大减少数据包的体积,可以测试一下~~
protobuf
是谷歌出品,目前有 3w
多 start
,(出了那么久感觉这个数目还不是很理想),在除了这个优点以外,它有个缺点,就是如果要修改里面参数的话,还挺麻烦的,需要重新生成一遍 .h
跟.m
,可能这样说比较懵,但是往下看就会明白了~
2.先配置 protobuf
的编译环境。
- 终端上:
brew -v
查询下是否安装了homebrew
,没有的话继续:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 接着安装以下工具:
brew install automake (可能被墙,会比较慢)
brew install libtool
brew install protobuf
3.接着 clone
这个项目下来
git clone https://github.com/google/protobuf.git
4.检查下 python
版本
python --version
如果是 python3
可能会出错,亲测 python2
没问题
5.cd 到克隆的项目里,
找到 objectivec/DevTools/full_mac_build.sh
,拖到终端里回车执行
这一步应该是跟 xcode
进行一些关联,才能正常的导出 oc 文件
6.导出 oc 文件
接着创建一个 .proto
文件,文件格式可以看其他地方~~~
将 .proto
文件导出 oc
文件的方式为:
在.proto
当前文件位置里,执行:
protoc --plugin=/usr/local/bin/protoc-gen-objc --objc_out=./ *.proto
这里不需要在处理什么,*.proto
是把所有 .proto
文件导出,如果要针对特定文件,把 * 替换成文件名即可
7.ARC 环境下的注意事项
还有就是 protobuf
的文件都是MRC
下的,所以要在项目里的project — target — Build Phases — Compile Sources
,找到对应导出进项目里的 .m 文件右边加上:fno-objc-arc
至于 .proto
里该写什么,还有在什么情况下会比 model
方便等等,后续会继续更新~
网友评论