2010-04-20 79 views
20

将协议指定为方法中参数的ObjectiveC语法是什么?用于在方法论证中指定协议名称的ObjectiveC语法参数

说我有2个协议,MyProtocol和MyProtocolCB:

@protocol MyProtocolCB <NSObject> 
- (void) func; 
@end 

@protocol MyProtocol <NSObject> 
- (void) register:(MyProtocolCB*) cb; 
@end 

我收到这个语法错误: error: expected type-specifier before 'MyProtocolCB'

回答

49

尝试:

- (void) register:(NSObject<MyProtocol>*) cb; 
+9

您也可以使用更通用的' id '而不是'NSObject *',特别是如果'MyProtocol'已经扩展了'NSObject'协议 – SergGr 2010-04-20 15:03:28

+0

@iPhone初学者:不完全一样。 NSObject类中的一些方法不在NSObject协议中 – user102008 2011-08-01 23:25:47

相关问题