背景信息
最近公司中的项目使用到了protobuf,因为开始没有接触过,所以对protobuf进行了一些粗浅的了解,大体来说,protobuf就是一种把某种数据结构的信息,以某种格式保存起来。主要用于数据存储、传输,你可以把protobuf理解成一种代替XML的东西,protobuf的优势在于:
- 相同的数据protobuf相比XML更加的轻量级,更加节省每次传输的数据量.
- protobuf是google公司的开源项目,这个项目是有稳定支撑的,停止更新和优化的几率非常低,而且专业性更强.
- 因为是开源项目所以只要你能力足够,你可以随意更改,随意个性化到你们自己的需求.
如果你想更加深入的了解protobuf你可以再看一下扫盲文章,或者看一下项目源码.好了,废话不多说,下面我们就为将protobuf集成到项目中做一些必要的准备吧.
安装Protobuf编译器
在terminal输入brew -v检查MAC是否装有brew,如果没有安装,请自行百度安装 : )
如果已经安装brew,就开始部署环境吧
- brew install automake
- git clone https://github.com/google/protobuf
- 按照terminal的提示继续输入命令
./configure CXXFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib
如果提示你
libtool: install: /usr/bin/install -c protoc-gen-objc /usr/local/bin/protoc-gen-objc
就说明已经安装成功了.
按照以上命令进行环境部署后,尽可以进入下一步了.
创建proto文件
proto文件是需要你和要进行通讯的一方制定的,这个一般是服务器,这里只是举一个例子,可以参考一下:
- cd Desktop/ 切换到桌面
- mkdir ProtoBuf 在桌面创建一个文件夹,文件夹名为ProtoBuf
- 创建一个proto文件,内容举例:
package web.platform;
message login_account_request
{
required bytes account = 1;
optional bytes passwd = 2;
}
message login_account_response
{
required int32 ec = 1;
optional bytes token = 2;
}
- 文件一定要以.proto格式保存
- proto的内容格式一定要正确,可以将自己创建出来的文本格式和示例的进行对比,package有没有拼写错误,需要分号的地方是否有分号,包括大括号的格式。如果内容格式有问题,可能会导致后面无法生成正确的OC文件
生成OC文件
cd ~/Desktop/ProtoBuf
protoc --plugin=/usr/local/bin/protoc-gen-objc person.proto --objc_out="./"
执行完成后就在ProtoBuf的文件夹下面生成了OC文件
将protobuf使用到工程中
使用pod导入
在pod文件中写入
pod 'Protobuf', '~> 3.3'
然后执行
pod install
最后把你生成的protobuf的添加到工程中就可以啦 : )
手动导入会在iOS项目开发中使用protobuf(下)中详细介绍.
网友评论
要用这个才行吧