美文网首页IM相关
iOS项目开发中使用protobuf(上)

iOS项目开发中使用protobuf(上)

作者: 爱搞事的Snoopy | 来源:发表于2016-12-11 20:13 被阅读399次

    背景信息

    最近公司中的项目使用到了protobuf,因为开始没有接触过,所以对protobuf进行了一些粗浅的了解,大体来说,protobuf就是一种把某种数据结构的信息,以某种格式保存起来。主要用于数据存储、传输,你可以把protobuf理解成一种代替XML的东西,protobuf的优势在于:

    • 相同的数据protobuf相比XML更加的轻量级,更加节省每次传输的数据量.
    • protobuf是google公司的开源项目,这个项目是有稳定支撑的,停止更新和优化的几率非常低,而且专业性更强.
    • 因为是开源项目所以只要你能力足够,你可以随意更改,随意个性化到你们自己的需求.

    如果你想更加深入的了解protobuf你可以再看一下扫盲文章,或者看一下项目源码.好了,废话不多说,下面我们就为将protobuf集成到项目中做一些必要的准备吧.

    安装Protobuf编译器

    在terminal输入brew -v检查MAC是否装有brew,如果没有安装,请自行百度安装 : )
    如果已经安装brew,就开始部署环境吧

    1. brew install automake
    2. git clone https://github.com/google/protobuf
    3. 按照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文件是需要你和要进行通讯的一方制定的,这个一般是服务器,这里只是举一个例子,可以参考一下:

    1. cd Desktop/ 切换到桌面
    2. mkdir ProtoBuf 在桌面创建一个文件夹,文件夹名为ProtoBuf
    3. 创建一个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(下)中详细介绍.

    相关文章

      网友评论

      本文标题:iOS项目开发中使用protobuf(上)

      本文链接:https://www.haomeiwen.com/subject/vudpmttx.html