我正在使用这个库:
ObjC的PB http://code.google.com/p/metasyntactic/wiki/ProtocolBuffers。
问题是我找不到修改PB对象的API,比如设置对象的字段。
似乎修改像PBData这样的对象:PBGeneratedMessage我必须调用三个API中的一个:
- (PBData_Builder*) builder;
+ (PBData_Builder*) builder;
+ (PBData_Builder*) builderWithPrototype:(PBData*) prototype;
他们中的任何一个只是创建一个不修改现有的新的。 有没有像PB for C ++这样的API:
PBData* mutable_data();
所以我可以修改现有的。
有什么想法吗?谢谢!
答案 0 :(得分:2)
PBData类是只读的。要使用所需的值创建PBData,只需使用构建器变体。假设你有这个定义:
message Point {
required float latitude = 1;
required float longitude = 2;
required float altitude = 3;
}
然后在你的代码中你会做这样的事情:
Point_Builder* pointBuilder = [Point builder];
pointBuilder.latitude = ...;
pointBuilder.longitude = ...;
pointBuilder.altitude = ...;
ProtoPoint* point = [pointBuilder build];