@protocol I <NSObject>
-(void) f;
-(void) g;
@end
@interface C : NSObject <I>
{
id<I> i;
}
-(void) toA;
-(void) toB;
@end
我正在使用这段代码,这里我使用的是协议(protocol)I,我想知道是什么意思 ( id< I > i ) 和它的工作。
最佳答案
声明:
MyClass<MyProtocol> * myVar;
表示 myVar 的类是 MyClass 的后代之一,另外还实现了 MyProtocol 协议(protocol)的方法。 阅读有关协议(protocol)的更多信息 here .
在你的代码中
id<I> i;
表示“i”是 id 类型 - 即它可以是任何类的对象(阅读 id here ), 但也符合协议(protocol)“I”。
在您的示例类中,您的“i”必须实现
-(void) f;
-(void) g;
方法。
您可以使用如下表达式:
[i f];
[i g];
关于ios - "id<I> i"在Objective-C编程中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7750512/