在方法中将协议指定为参数的ObjectiveC语法是什么?
假设我有2个协议,MyProtocol和MyProtocolCB:
@protocol MyProtocolCB <NSObject>
- (void) func;
@end
@protocol MyProtocol <NSObject>
- (void) register:(MyProtocolCB*) cb;
@end
我收到此语法错误:
error: expected type-specifier before 'MyProtocolCB'
答案 0 :(得分:51)
尝试:
- (void) register:(NSObject<MyProtocol>*) cb;
答案 1 :(得分:1)
使用id
而不是NSObject
,因为您已经知道id
是instance
类型或泛型类型,因此,如果您使用id,它将在很大程度上帮助您。< / p>
- (void) register:(id<MyProtocol>*) sender;