由于我们这边数据的特殊性,数据量大、刷新频繁等原因,于是使用到了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
版本,如果没有的话,就安装一下:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2.安装几个工具:
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到这个文件所在的目录,执行:
protoc --plugin=/usr/local/bin/protoc-gen-objc --objc_out=./ *.proto
然后你就会发现这个目录下多了.h .m
两个文件,把它俩放到项目中即可。
7. 如果你的项目用的是ARC,当然,现在基本上都是ARC了,那么你就得对这个拖进项目的.m
文件设置一下,因为它还是用的MRC
。
选择你的project文件— target—Build Phases
— Compile Sources
,找到你添加的.m
文件,然后加上-fno-objc-arc
,如图:
参考文档: