Protobuf简介
Protocol Buffer是google 的一种数据交换的格式,已经在Github开源,目前最新版本为3.4.0
说明
- protobuf3.0.0以上才官方支持Objective-C,低于3.0.0的请忽略或使用第三方转换工具
- 开发环境:32bit & 64bit iOS, 64bit OS X,Xcode7.0+
- 基于性能原因没有使用ARC,但可以被ARC代码调用
1 配置环境
步骤
1 转换:将我们编写好的XXX.proto文件转成Objective C文件,也就是XXX.h和XXX.m文件,转换的工具是使用protoc这种二进制文件来生成的,这文件需要自己生成,稍后会介绍如何使用它来转换Objective-C文件
2 集成:如果在iOS项目中加入protobuf库以及步骤1生成的OC文件
转换
如果没有装autoconf automake libtool需要先装这几个,这里使用brew来安装,在shell执行 brew install autoconf automake libtool即可,如果没有brew请自行先安装brew。
下载面向Objective-C的protobuf库,地址为(https://github.com/google/protobuf/releases),要下载对应Objective-C的版本比如 protobuf-objectivec-3.4.0.zip,解压。

cd到下载的目录,依次执行:
- $ ./autogen.sh
- $ ./configure
- $ make
- $ make check
- $ sudo make install
再执行 - objectivec/DevTools/full_mac_build.sh 执行完后会看到src目录下生成了protoc二进制文件
2 集成Protobuf
创建proto文件,这里是服务端给的
需要注意的是要指明proto的语法规则是proto2还是proto3。
在src目录(protoc所在目录)执行
其中proto_path是我们创建的proto文件所在目录,objc_out为Objective-C文件输出路径,XXX.proto是我们创建的proto文件,可以一次转换多个proto文件,加在XXX.proto后面即可。
protoc --proto_path=protocols --objc_out=gen protocols/PBData.proto
然后在gen文件夹下就会生成Person.pbobjc.h和Person.pbobjc.m文件。
集成