Google Protocol Buffers iOS使用举例(GPB)

简介

Protobuffer是一个类似JSON的一个传输协议,其实也不能说是协议,可以认为是一种传输数据格式类似JSON,XML。但是比JSON更加轻量。消耗更小的带宽。
跨语言,这是它的一个优点。它自带了一个编译器,protoc,只需要用它进行编译,可以编译成JAVA、python、C++、OC代码。

安装

安装方式有两种,我最开始选择了比较笨的一种,先介绍比较简单的一种

简单


  1. 下载:参考链接:https://github.com/protocolbuffers/protobuf/releases
    image.png
  2. 编译:下载完成之后,进行解压,然后使用终端,进入到其解压文件下:
    依次在终端中执行
# 前提是:使用brew按照工具链(xcode autoconf automake libtool)
$ ./autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install # 这一步也可以不做,用的时候直接使用路径找就好

相对愚蠢的另一种


  1. 参考链接:https://github.com/protocolbuffers/protobuf按照官方文档操作

  2. 参考方法二其实比较简单


    image.png
  3. 我一个粗心,选择了方法一,参考链接:https://github.com/protocolbuffers/protobuf/blob/master/src/README.md
    准备阶段(使用brew按照工具链):

    image.png

  4. 下载代码编译:


    image.png

使用


1 创建.proto文件person.proto

syntax = "proto3";

message Person {
    int64 person_id = 1;
    string person_name = 2;
    string person_gender = 3;
    string person_message = 4;
}

2 利用protoc的插件生成对应的.h与.m文件

protoc ./person.proto --objc_out=./

3 在工程中使用

  • 新建一个工程,之后将Person.proto & Person.pbobjc.h & Person.pbobjc.m添加到工程
  • 使用pod引用Protobuf
pod 'Protobuf';
  • 编译:可能会报错,主要是因为生成的Person.pbobjc.m文件为MRC下使用,而我们的工程环境为ARC,所以需要配置该文件支持ARC环境。
  • 如果有其他错误,继续解决即可(网上一搜一堆方案),可以看考:https://www.jianshu.com/p/c17260b36928
  • demo
Person *person = [Person new];
person.personId = 1;
person.personName = @"Carson";
person.personGender = @"Male";
person.personMessage = @"I'm the best in the world !";
    
NSData *personData = [person data];
NSString *encodedBase64FromStr = [personData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
  • 或者从这儿找一个可以运行的demo运行一下看看


    image.png

你可能感兴趣的:(Google Protocol Buffers iOS使用举例(GPB))