Explorar el Código

Add a objc_class_prefix to test_messages_proto3.proto.

Both test_messages_proto3.proto & test_messages_proto2.proto define
message ForeignMessage {...} and enum ForeignEnum {...} but since
objc doesn't use the proto package in the naming, these end up
conflicting.

Adding the objc_class_prefix option to the proto3 file ensure the generated
objc types are all unique.
Thomas Van Lenten hace 8 años
padre
commit
21800ff84f

+ 3 - 3
conformance/conformance_objc.m

@@ -63,7 +63,7 @@ static NSData *CheckedReadDataOfLength(NSFileHandle *handle, NSUInteger numBytes
 
 static ConformanceResponse *DoTest(ConformanceRequest *request) {
   ConformanceResponse *response = [ConformanceResponse message];
-  TestAllTypesProto3 *testMessage = nil;
+  Proto3TestAllTypesProto3 *testMessage = nil;
 
   switch (request.payloadOneOfCase) {
     case ConformanceRequest_Payload_OneOfCase_GPBUnsetOneOfCase:
@@ -73,8 +73,8 @@ static ConformanceResponse *DoTest(ConformanceRequest *request) {
     case ConformanceRequest_Payload_OneOfCase_ProtobufPayload: {
       if ([request.messageType isEqualToString:@"protobuf_test_messages.proto3.TestAllTypesProto3"]) {
         NSError *error = nil;
-        testMessage = [TestAllTypesProto3 parseFromData:request.protobufPayload
-                                            error:&error];
+        testMessage = [Proto3TestAllTypesProto3 parseFromData:request.protobufPayload
+                                                        error:&error];
         if (!testMessage) {
           response.parseError =
               [NSString stringWithFormat:@"Parse error: %@", error];

+ 1 - 0
src/google/protobuf/test_messages_proto3.proto

@@ -39,6 +39,7 @@ syntax = "proto3";
 
 package protobuf_test_messages.proto3;
 option java_package = "com.google.protobuf_test_messages.proto3";
+option objc_class_prefix = "Proto3";
 
 // This is the default, but we specify it here explicitly.
 option optimize_for = SPEED;