一.ProtoBuf简介

ProtocolBuffer(简称Protobuf或PB)是由Google推出的一种数据交换格式,它可以很方便的把各个语言分支上的对象转换为二进制代码,然后进行数据交换。和JSON,XML这类文本格式不同的是,它可以直接按照约定的格式生成各个平台上的对象代码,免去了文本格式转换的各种困扰,并且转换效率非常快。

ProtocolBuffer主要由两部分组成:

PB基础库:完成对象--->二进制数据的序列化、二进制数据--->对象的反序列化这两个转换过程的支持。

PB编译器:源码生成器,将PB格式定义文件。proto(PB数据格式的一种定义文件)转换为对象源码(支持C++,JAVA,Python等格式)。

GitHub:https://github.com/google/protobuf

https://github.com/google/protobuf/tree/master/objectivec

二.ProtoBuf的使用

安装编译器

1.使用brew安装编译器到OSX中。

brew install automake
brew install libtool
brew install protobuf

2.或者直接下载protoc.bin到本机中。

3.或者直接将源码release版本下载下来,使用objective-c/DevTools/full_mac_build.sh脚本会自动生成所以所需要的工具。最后生成src/protoc命令。

为工程添加依赖库

1.使用CocoaPod添加ProtoBuf。

pod 'Protobuf', '~> 3.5.0'

2.或者将objetive-c/目录下的工程添加到当前工程中。

书写proto文件

Test.proto:

import "ProtoBuffer.proto";

package com.test.protobuf;

message TestState{
    enum Status{
        IDLE = 0;
        SCANNING = 1;
        CONNECTING = 2;
        CASTING = 3;
        FAILED = 4;
    }

    required Status status   = 1;
    optional string errorMsg = 2;
}

可以在同一个package下生产不同的proto文件。

生成对象

protoc --plugin=/usr/local/bin/protoc-gen-objc Test.proto --objc_out="./"

results matching ""

    No results matching ""