美文网首页iOS Developer程序员
iOS Protobuf3.3安装与使用

iOS Protobuf3.3安装与使用

作者: 北纬3954 | 来源:发表于2017-06-11 10:18 被阅读257次

    使用Protobuf是因为其性能好,效率高。具体介绍可以参考谷歌官方文档https://developers.google.com/protocol-buffers/
    下面介绍如何安装使用Protobuf3.0及以上版本,编译生成OC代码,并在工程中正确使用。

    安装Protobuf

    从GitHub下载代码。https://github.com/google/protobuf
    直接clone就是最新的代码。当然也可以在clone时指定自己需要的版本。本文使用的是最新的代码,即Protobuf3.3.0。
    下载完成后,使用终端,切换至protobuf所在的文件路径。
    安装前需要先确认自己的MAC安装了autoconf和automake。如果没有安装可以直接通过命令行brew install autoconf以及brew install automake进行安装。其中brew是指HomeBrew,如果MAC没有安装HomeBrew,可以通过命令行/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"进行安装。
    准备工作进行完后,就开始安装Protobuf。
    还是先确认在Protobuf所在的文件目录下。然后按步骤执行* sudo ./autogen.sh

    • ./configure
    • make
    • make install
      此时protobuf就安装成功了。执行protocbuf --version就可以看到安装的版本号了。

    编译生成OC代码

    创建proto文件。此处使用最简单的例子。创建User.proto。里面的内容是

    syntax = "proto3";
    
    message UserInfo {
      required int64 id = 1;
      required string name = 2;
    }
    

    然后使用终端切换到User.proto所在的文件夹路径。执行命令protocbuf User.proto --objc_out=./。以上是最简单的生成OC代码的命令。执行完成后,会在当前文件夹生成User.pbobjc.h和User.pbobjc.m两个文件。到此生成OC代码的工作也完成了。

    工程中使用生成的代码

    在生成.h和.m文件后,把它们引入到自己的工程,如果此时直接编译会报错,原因是没有引入PB的文件。解决方法有两个:

    • 使用Cocoapod,在podfile中添加pod 'Protobuf'注意大小写。然后pod install再编译就可以了。这个方法简单方便。
    • 如果不适用pod管理,就要把PB需要的文件手动引入到工程。具体文件在第一步Colne的protobuf/objectivec文件夹里面。而且还得注意如果工程是ARC时,要把部分PB文件置为-fno-objc-arc。具体设置参考GitHub文档https://github.com/google/protobuf/tree/master/objectivec

    此时再次编译就OK了。使用方法也很简单

    User *tom = [[User alloc] init];
    tom.name = @"tom";
    NSData *tomData = [tom data];
    

    相关文章

      网友评论

        本文标题:iOS Protobuf3.3安装与使用

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