是否可以将协议作为参数传递给函数?
@protocol A
@end
...
// in other class
- (void)callProto: (Protocol *)protocol
{
NSLog(@"%@", NSStringFromProtocol(protocol));
}
在这种情况下,没有任何语法错误。但是我怎样才能将协议传递给这个函数呢?
我试过
[instance callProto: A];
它没有用。
答案 0 :(得分:1)
您需要声明一个这样的协议:
Protocol *p = @protocol(MyProtocolName);
然后将它传递给你的函数:
[self callProto:p];
我想不出为什么你会需要这个。