ObjectiveC语法在方法参数中指定协议名称

时间:2010-04-20 14:47:50

标签: objective-c cocoa

在方法中将协议指定为参数的ObjectiveC语法是什么?

假设我有2个协议,MyProtocol和MyProtocolCB:

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

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

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

2 个答案:

答案 0 :(得分:51)

尝试:

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

答案 1 :(得分:1)

使用id而不是NSObject,因为您已经知道idinstance类型或泛型类型,因此,如果您使用id,它将在很大程度上帮助您。< / p>

- (void) register:(id<MyProtocol>*) sender;