ios - "id<I> i"在Objective-C编程中是什么意思?

标签 ios iphone objective-c

@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/

相关文章:

ios - 创建时间间隔 Swift 列表

ios - 如何在轨道中间启动 AUAudioFilePlayer 但循环到开头?

ios - 增加可以按下 SKNode 的区域

iphone - 检测 UIAlert/通知

iphone - iOS CF 数据结构与 NS 数据结构

objective-c - 如何独立运行两个任务

ios - Alamofire 数组列表

iphone - [UIColor colorWithRed:0.85 green:0.85 blue:0.85 alpha:1]的MACRO函数RGBCOLOR(R,G,B)是什么?

ios - 如何从 iOS 8.0 中弃用的 UISearchDisplayController 更改为 UISearchController

ios - 在 ios 的 UISplitViewController 的详细 View 中显示模态视图?