我不知道这是什么意思?我认为这与协议有关,但有人可以告诉我这种语法的正确含义是什么吗?
id<aKeypadDelegate> delegate;
答案 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位置的内容。并非所有错误都会被编译器捕获。