protobuf在iOS中的使用

由于我们这边数据的特殊性,数据量大、刷新频繁等原因,于是使用到了Google得protobuf协议。
相比较于Json、XML,它更小巧,于是在同等网络条件下,它的传输速度会更快,同等量级的数据的情况下,它能为用户省下更多的数据流量,而且Google也为他提供了多语言的支持。

谷歌官网 : Google Protocol Buffers
Github项目地址 : Google’s protobuf

对于protobuf的协议内容,就不多说了,官网上对于protobuf2和protobuf3有很详细的说明,可以去官网看看。详细介绍

这里主要是说一下如何安装protobuf的编译环境,能够在iOS中使用,毕竟我们熟悉的还是OC的.h .m,而不是Google的.proto

1. 首先使用brew -v指令检查一下你的homebrew版本,如果没有的话,就安装一下:

1
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2.安装几个工具:

1
2
3
brew install automake
brew install libtool
brew install protobuf

3. Clone一下Google的这个项目到你的本地 : https://github.com/google/protobuf.git

4. 完成后,使用python --version指令检查一下你的python版本,由于我用的是python3版本,跑了老半天到最后出错了,最后还是切回python2

5. cd到Clone下来的protobuf的项目目录,执行 objectivec/DevTools/full_mac_build.sh,就等着终端上一大堆的log跑吧。

6. shell脚本跑完以后,就可以新建一个.proto文件了,cd到这个文件所在的目录,执行:

1
protoc --plugin=/usr/local/bin/protoc-gen-objc --objc_out=./ *.proto

然后你就会发现这个目录下多了.h .m两个文件,把它俩放到项目中即可。

7. 如果你的项目用的是ARC,当然,现在基本上都是ARC了,那么你就得对这个拖进项目的.m文件设置一下,因为它还是用的MRC
选择你的project文件— target—Build PhasesCompile Sources,找到你添加的.m文件,然后加上-fno-objc-arc,如图:

参考文档:

iOS中protobuf 的安装和使用

Google’s data interchange format