gpt4 book ai didi

objective-c - 我可以在 Objective-C 中将协议(protocol)作为类变量吗?

转载 作者:行者123 更新时间:2023-12-02 07:46:43 24 4
gpt4 key购买 nike

我是 Objective C 的新手。我正在尝试像使用 Java 中的接口(interface)一样使用协议(protocol),但我不知道它如何使用,甚至不知道它是否是完成这项工作的正确工具。我在 Protocol.h 中定义了一个协议(protocol):

@protocol SomeProtocol
- (void)someMethod;
@end

现在,在另一个类中,我需要一个具有 someMethod 的变量

#import "Protocol.h"
@interface OtherClass:NSObject {
SomeProtocol objWithSomeMethod;
}
@end

当然“SomeProtocol objWithSomeMethod”给我一个错误。那么有没有一种方法可以声明一个对象,无论类型如何,都符合这个协议(protocol)?

最佳答案

是的,使用尖括号。您可以声明一个实例变量以符合这样的协议(protocol):

id<SomeProtocol> objWithSomeMethod;

如果你想让它符合不止一种协议(protocol),你可以像这样使用逗号分隔它们:

id<SomeProtocol, SomeOtherProtocol> objWithSomeMethod;

您也可以用同样的方式声明变量或参数。

关于objective-c - 我可以在 Objective-C 中将协议(protocol)作为类变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6511650/

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