安装 Protocol Buffers
安装 homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装 automake、libtool、protobuf。这里安装的 protobuf 是 google 官方版本。
brew install automake brew install libtool brew install protobuf
先下载protocolbuffer的源码 protocolbuffer 。里面有ios的部分,可以编译成framework的动态库或静态库.
安装protocolbuffer,protol类成成工具,一种办法是用上述源码里。
$ cd compiler
$ ./autogen.sh
$ ./configure
$ make
$ make install (optional)
编译 protoc-gen-objc。protoc-gen-objc 是 protoc 的一个插件,使其能将 .proto 文件编译成 objective-c 代码。
这些完成之后,写一个protoc文件测试: UserInfo.proto
enum UserStatus
{
OFFLINE = 0;
ONLINE = 1;
}
message UserInfo {
required int64 acctID = 1;
required string name = 2;
required UserStatus status = 3;
}
转换:
$protoc --objc_out=. UserInfo.proto
在当前目录出现两个文件: UserInfo.pb.h UserInfo.pb.m
在 Podfile 中添加 pod 'ProtocolBuffers', '1.9.2' 然后执行 pod install 。
生成完成,使用起来很方便,导入framework静态库到工程中,使用方法:
UserInfoBuilder* builder = [UserInfo builder];
[builder setName:@"zhangsan"];
[builder setAcctId:1000];
[builder setStatus:UserStatusOnline];
UserInfo* info1 = [builder build];
NSData* data = info1.data;
NSLog(@"data:%@", data);
//data->obj
UserInfo* info2 = [UserInfo parseFromData:data];
NSLog(@"obj:%@", info2);