指向作为参数传入的协议的指针

时间:2014-07-14 21:44:02

标签: ios objective-c function protocols

是否可以将协议作为参数传递给函数?

@protocol A
@end

...
// in other class
- (void)callProto: (Protocol *)protocol
{
   NSLog(@"%@", NSStringFromProtocol(protocol));
}

在这种情况下,没有任何语法错误。但是我怎样才能将协议传递给这个函数呢?

我试过

[instance callProto: A]; 

它没有用。

1 个答案:

答案 0 :(得分:1)

您需要声明一个这样的协议:

Protocol *p = @protocol(MyProtocolName);

然后将它传递给你的函数:

[self callProto:p];

我想不出为什么你会需要这个。