十四、iOS使用Protocol buffers

一、简介

   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进行导入

五、常见错误解决方法

注释掉这一行
十四、iOS使用Protocol buffers_第1张图片
注释掉这一行
十四、iOS使用Protocol buffers_第2张图片
直接Fix-it

六、序列化和反序列化

十四、iOS使用Protocol buffers_第3张图片
序列化和反序列化

7、总结

   protobuf数据格式的使用,提高了程序员开发效率,由于数据的轻量,所占到了更少的带宽,提高程序的效率。只需要前期与后台定义好.proto文件,得到的data的数据,可以直接反序列化为data model,一定程度的提高了开发效率。

你可能感兴趣的:(十四、iOS使用Protocol buffers)