id<>委托这种语法的含义是什么?

时间:2013-12-30 11:56:56

标签: ios objective-c protocols

我不知道这是什么意思?我认为这与协议有关,但有人可以告诉我这种语法的正确含义是什么吗?

id<aKeypadDelegate> delegate;

2 个答案:

答案 0 :(得分:2)

id 是对类未知的Objective-C对象的引用,因此委托可以是任何Objective-C对象。 当你发现这个:

@property (nonatomic, weak) id<SomeProtocolHere> delegate;

...这意味着 委托 可以是任何类型的Objective-C对象,它实现(“符合”) SomeProtocolHere 协议。

答案 1 :(得分:1)

嗯,你编辑了你的问题,所以我的答案完全不同......我已经重写了它。

id表示&#34;任何对象&#34;。它只是一个指向特定RAM的数字。

id<Foobar>表示&#34;任何符合Foobar协议的对象&#34;。

协议定义了对象必须具有的方法列表。

谨防协议仅在编译时检查,它们不会在运行时检查。当代码实际执行时,它不会进行任何检查以查看指定RAM位置的内容。并非所有错误都会被编译器捕获。