'id'指向某个类或任何子类

时间:2010-11-15 10:18:19

标签: objective-c

所以在Objective-C中我可以引用实现某些协议的对象:

id<MyAwesomeProtocol> object;

我可以引用某个类,如下所示:

MyAwesomeClass *object;

我想知道,我该怎么做才能引用MyAwesomeClass或任何子类。

我当然可以使用id,但我想知道是否有更好的方法。

谢谢!

2 个答案:

答案 0 :(得分:4)

要引用类或其子类的对象,您仍然可以编写

MyAwesomeClass *object;

答案 1 :(得分:1)

一般情况下,最好使用NSObject*代替id。所有Objective-C对象都是NSObject的后代,那么为什么要忽略所有NSObject个好东西呢?

如果您正在处理MyAwesomeClass或子类,我会使用MyAwesomeClass * object。如果您只是使用协议方法(在协议的上下文中),那么我将使用NSObject <MyAwesomeProtocol> *object