在使用Objective-C开发应用程序时,有没有人使用过Google的协议缓冲区?
是否有将.proto
文件编译为Objective-C的当前项目?所有谷歌文档都只涉及Java、C++或Python。
在使用Objective-C开发应用程序时,有没有人使用过Google的协议缓冲区?
是否有将.proto
文件编译为Objective-C的当前项目?所有谷歌文档都只涉及Java、C++或Python。
我一直在修改Cyrus的项目,这个项目基于protobuf 2.3,并且是protoc
插件(protoc-gen-objc
),而不需要修改protobuf发布版就能运行。
你可以在GitHub上找到它,项目名为protobuf-obj。
在第三方页面中列出了这个Objective-C移植版。不幸的是,该项目目前似乎为空,但仍然值得关注。我之前听说过该项目的内部传言,但今天才看到它成为开源项目。
你可以与项目所有者(Cyrus Najmabadi)联系以了解详情...
(小事一桩 - Cyrus曾在加入Google之前在Microsoft的C#团队工作。)
这可能或可能不会有帮助,但是Apache Thrift(最初由Facebook开发)支持Cocoa,似乎有人尝试在iPhone上使用它。
Thrift官方支持更多的语言。但是,Protocol Buffers拥有5倍于Stack Overflow感兴趣度,所以谁知道它是否能在维护方面作为一个好的替代品—更不用说与你自己的项目的兼容性了!然而,也许值得考虑。
我刚刚问了一个相关的问题,如果有好的答案,您可能会发现它很有帮助:Any success using Apache Thrift on iPhone?
协议缓冲区v3将Objective-C作为一流语言支持。
要从.proto
文件生成Objective-C代码,请使用objc_out
选项调用编译器:
protoc --proto_path=src --objc_out=build/gen src/foo.proto src/bar/baz.proto
我更喜欢在我的Objective-C项目中使用C++生成的类,效果非常好。
我曾尝试过Objective-C PB版本,但没有成功。