ios - 指向作为参数传入的协议(protocol)的指针

标签 ios objective-c function protocols

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

@protocol A
@end

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

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

我试过了

[instance callProto: A]; 

它不起作用。

最佳答案

您需要声明这样的协议(protocol):

协议(protocol) *p = @protocol(MyProtocolName);

然后将其传递给您的函数,如下所示:

[self callProto:p];

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

关于ios - 指向作为参数传入的协议(protocol)的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24746510/

相关文章:

c++ - 错误 C2664 : cannot convert parameter 1 from 'int' to 'int (__cdecl *)(int)'

ios - UIButton 不响应触摸事件

ios - 如何使用 3D 模型在 ARKit 中捕获图像

ios - MKAnnotationView 标注中的反转文本

Iphone,对于定期更新的数据,NSUserDefaults 仍然是最简单的选择吗?

iphone - MBProgressHud 不随设备方向改变。?

javascript - 使用 JavaScript If...Else 语句查找数组中下一个最大的数字

javascript - 添加按钮按下时的输入值检查

ios - 更新临时安装的 iOS 应用程序

objective-c - 在 Objective-C 中使用 int 数据类型