Protocol Buffers(通常简称为protobuf)是Google公司开发的一种数据描述语言,它能够将结构化数据序列化,可用于数据存储、通信协议等方面。这种序列化格式很灵活、高效、自动化,不依赖于语言和平台并且可扩展性极强。使用protobuf时,您只需将数据结构定义一次(使用.proto文件定义),便可以使用特别生成的源代码轻松地使用不同的数据流完成对这些结构数据的读写操作,即使使用不同的语言(protobuf的跨语言支持特性)。您甚至可以更新数据结构的定义(就是更新.proto文件内容),而不会破坏依赖“老”格式编译出来的程序。
在Mac上安装protoc
(Protocol Buffers编译器),你可以按照以下步骤操作:
1、打开终端。
2、检查是否安装Homebrew:
brew -v
已安装结果:
Homebrew 4.3.23
未安装结果:
-bash: brew: command not found
如果未安装,执行一下命令安装:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
3、Homebrew安装成功后,执行以下命令安装protoc:
brew install protobuf
完成后验证是否安装成功:
protoc --version
结果:
libprotoc 28.1
4、github上相关资源:https://github.com/protocolbuffers/protobuf
5、桌面新建文件夹 protoBuf, 使用Xcode新建文件命名为person.proto,或者复制empty.proto到该文件夹内,重命名为person.proto,定义结构:proto3语法
syntax = "proto3";message Person {string name = 1;int32 id = 2; string email = 3;enum PhoneType {MOBILE = 0;HOME = 1;WORK = 2;}message PhoneNumber {string number = 1;PhoneType type = 2;}
}
6、终端执行命令,cd 到文件夹protoBuf:
cd /Users/Name/Desktop/protoBuf
7、执行以下命令生成pb文件:
protoc ./person.proto --objc_out=./
8、把生成的.h和.m文件添加到项目中就可以使用了。
需要注意的是,如果编译报错,文件不支持ARC的,需要在Compile Sources中,找到Person.pbobjc.m,添加-fno-objc-arc,关闭文件的ARC.