使用Protocol Buffers和Objective-C编程

17

在使用Objective-C开发应用程序时,有没有人使用过Google的协议缓冲区

是否有将.proto文件编译为Objective-C的当前项目?所有谷歌文档都只涉及Java、C++或Python。

5个回答

15

我一直在修改Cyrus的项目,这个项目基于protobuf 2.3,并且是protoc插件(protoc-gen-objc),而不需要修改protobuf发布版就能运行。

你可以在GitHub上找到它,项目名为protobuf-obj


这个项目应该被列在谷歌的第三方插件页面上,而不是Cyrus的页面上。 - gregschlom

4

第三方页面中列出了这个Objective-C移植版。不幸的是,该项目目前似乎为空,但仍然值得关注。我之前听说过该项目的内部传言,但今天才看到它成为开源项目。

你可以与项目所有者(Cyrus Najmabadi)联系以了解详情...

(小事一桩 - Cyrus曾在加入Google之前在Microsoft的C#团队工作。)


2

这可能或可能不会有帮助,但是Apache Thrift(最初由Facebook开发)支持Cocoa,似乎有人尝试在iPhone上使用它。

Thrift官方支持更多的语言。但是,Protocol Buffers拥有5倍于Stack Overflow感兴趣度,所以谁知道它是否能在维护方面作为一个好的替代品—更不用说与你自己的项目的兼容性了!然而,也许值得考虑。

我刚刚问了一个相关的问题,如果有好的答案,您可能会发现它很有帮助:Any success using Apache Thrift on iPhone?


2

协议缓冲区v3支持Objective-C

协议缓冲区v3将Objective-C作为一流语言支持

要从.proto文件生成Objective-C代码,请使用objc_out选项调用编译器:

 protoc --proto_path=src --objc_out=build/gen src/foo.proto src/bar/baz.proto 

1

我更喜欢在我的Objective-C项目中使用C++生成的类,效果非常好。

我曾尝试过Objective-C PB版本,但没有成功。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接