一、简介
Protobuffer是一个类似JSON的一个传输协议,其实也不能说是协议,可以认为是一种传输数据格式类似JSON,XML。但是比JSON更加轻量。消耗更小的带宽。
跨语言,这是它的一个优点。它自带了一个编译器,protoc,只需要用它进行编译,可以编译成`JAVA`、`python`、`C++`代码,暂时只有这三个,其他就暂时不要想了,然后就可以直接使用,不需要再写任何其他代码。连解析的那些都已经自带有的。JSON当然也是跨语言的,但这个跨语言是建立在编写代码的基础上,iOS开发使用protobuf可以添加第三方库即可集成开发环境进行使用。
二、环境的集成
1.protobuf buffers安装下载
环境地址https://github.com/google/protobuf/releases
2.将下载好的包解压,解压完成之后,用终端进入到其根在目录下,并一次执行以下的命令
$./autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install
3.完成以上操作后,打开终端,输入以下命令
$ cd /usr/local/bin/
$ ls
如果有protoc
表示已经安装好protoc
插件了
三、创建xxx.proto文件
e.g:
创建一个Person.proto文件
syntax = "proto3";
message Person {
string name = 1;
int32 age = 2;
string gender = 3;
}
在终端输入:
protoc --proto_path=. --objc_out=. Person.proto
就会在与Person.proto
同一路径生成.h和.m文件的
注意:生成的文件是MRC的
四、怎么样使用
依赖Protobuf
第三方框架:https://github.com/google/protobuf.git
可以使用Cocoapods进行导入
五、常见错误解决方法
六、序列化和反序列化
7、总结
protobuf数据格式的使用,提高了程序员开发效率,由于数据的轻量,所占到了更少的带宽,提高程序的效率。只需要前期与后台定义好.proto文件,得到的data的数据,可以直接反序列化为data model,一定程度的提高了开发效率。