Protocol Buffers 应用于 iOS 的尝试
公司下一个项目打算使用Protocol Buffers ,所以这几天学习了解了下Protocol Buffers ,尝试了 Protocol Buffers 应用于 Objective-C.
关于Protocol Buffers 是什么,我想大部分看我正在写的这篇记录的弟兄应该比我熟了,如果也不甚了解的话google一下吧,去看看官方文档吧。
在应用ProtocolBuffers ,我首先尝试的是 protobuf-2.4.1版本,该版本支持C++,Java,Python,但参考一篇博文,据说以插件的方式可以实现proto文件到.h/.m文件的转换(博文地址:Protocol buffer for objective-c 环境配置),但是我没能成功,给出连接供有心人尝试。
在超凡兄提点下我尝试了protobuf-2.2.0版本,这个用起来比较简单,参考超凡兄给的一片博文很快就把.h/.m文件生成了。(博文地址:Protocol Buffers for Objective-C)。
测试代码上面博文已经有了,用不着我赘述了。我在使用的时候遇到两个小问题:
1.服务器给我的.proto文件中 某些message中有 value 字段,这与 生成代码中set方法形参一样,会造成讨厌的警告;
2.服务器给我的.proto文件中 某些message中有 result 字段,这样会造成生成的oc 代码编译不通过,在该message对应_builder类中会报 set方法返回类型错误,应该为void*类型。
针对这一问题,解决很简单,将.proto文件中对应字段改名就ok了(我是在该字段前加了字母'a')。
关于value很好理解;关于result我猜想是与保留字有关,就像property定义为new**报警告一样。