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 方便等等,后续会继续更新~