@ -1216,8 +1216,11 @@ void GPBSetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field,
const char * GPBMessageEncodingForSelector ( SEL selector , BOOL instanceSel ) {
const char * GPBMessageEncodingForSelector ( SEL selector , BOOL instanceSel ) {
Protocol * protocol =
Protocol * protocol =
objc_getProtocol ( GPBStringifySymbol ( GPBMessageSignatureProtocol ) ) ;
objc_getProtocol ( GPBStringifySymbol ( GPBMessageSignatureProtocol ) ) ;
NSCAssert ( protocol , @ "Missing GPBMessageSignatureProtocol ") ;
struct objc_method_description description =
struct objc_method_description description =
protocol_getMethodDescription ( protocol , selector , NO , instanceSel ) ;
protocol_getMethodDescription ( protocol , selector , NO , instanceSel ) ;
NSCAssert ( description . name != Nil && description . types != nil ,
@ "Missing method for selector %@", NSStringFromSelector(selector));
return description . types ;
return description . types ;
}
}
@ -1911,13 +1914,3 @@ BOOL GPBClassHasSel(Class aClass, SEL sel) {
free ( methodList ) ;
free ( methodList ) ;
return result ;
return result ;
}
}
#pragma mark - GPBMessageSignatureProtocol
/ / A series of selectors that are used solely to get @ encoding values
/ / for them by the dynamic protobuf runtime code . An object using the protocol
/ / needs to be declared for the protocol to be valid at runtime .
@ interface GPBMessageSignatureProtocol : NSObject < GPBMessageSignatureProtocol >
@ end
@ implementation GPBMessageSignatureProtocol
@ end