Open ShannonChenCHN opened 6 years ago
相对于传统的 XML 和 JSON, Protocol buffers 的优势主要在于:更加小、更加快。对于自定义的数据结构,Protobuf 可以通过生成器生成不同语言的源代码文件,读写操作都非常方便。
安装 Protocol Buffer,到 GiHub repo 上下载源码,按文档安装即可。
创建 .proto 文件,再用 Protobuf 编译器生成目标语言(这里是 Objective-C)所需要的源代码文件,也就是一个定义了 model 类的文件。
在项目中导入 PB 编解码相关的代码,有三种导入方式
Protocol Buffer 的主要优点在于小巧、快速:
这两个优点主要源于两点:
Protocol Buffer 的缺点:
在 Protocol Buffer 的 Objective-C 解码库中,解析 PB 数据的逻辑可以简单理解为:
通过在 GPBMessage 子类中实现的 Descriptor(包括 GPBFileDescriptor、 GPBDescriptor 和 GPBFieldDescriptor),指定 Message 以及各属性的一些信息,然后再循环遍历这个 GPBMessage 子类的各个属性对应的 Descriptor,对属性进行赋值。
protobuf 是跨平台的,protobuf 大概分成两部分: