gpt4 book ai didi

objective-c - 将协议(protocol)作为方法参数传递

转载 作者:太空狗 更新时间:2023-10-30 03:18:03 25 4
gpt4 key购买 nike

首先让我解释一下我不是什么意思。我不想为协议(protocol)输入参数:

-(void)someMethod:(id<SomeProtocol>)someArgument;

我想要的是将协议(protocol)传递给方法,就像我可以将类传递给方法一样(以下是不正确的,但它有望解释我想做什么):

-(void)someMethod:(Protocol)someArgument;

然后我希望能够使用该协议(protocol)来检查一组对象是否实现了它。

最佳答案

如果您在编码时知道协议(protocol)的名称,请使用 @protocol(SomeProtocol) 获取指向该协议(protocol)的指针,类似于您使用 @selector( x).

除此之外,您只需引用具有类标识符 Protocol 的协议(protocol)——因此您的方法声明如下所示:

-(void)someMethod:(Protocol*)someArgument

您可以在文档中查看 NSObject conformsToProtocol:

的示例

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/Reference/Reference.html#//apple_ref/occ/clm/NSObject/conformsToProtocol :

关于objective-c - 将协议(protocol)作为方法参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7492395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com