Effective Objective-C笔记:(十四)类对象

描述Objective-C对象所用的数据结构定义在运行期程序库的头文件中,id类型本身也定义在这里。

由此可见,每个对象结构体的首个成员是Class类的变量。该变量定义了对象所属的类,通常称为“is a”指针。Class类也定义在运行期程序库的头文件中:

此结构体中存放类的元数据,例如类的实例实现了几个方法,具备多少个实例变量等信息。此结构体的首个变量也是isa指针,这说明Class本身也是个OC对象。super_class定义了本类的超类。isa指针指向的那个类叫做“元类”,用来表述类对象本身所具备的元数据。

super_class指针确立了继承关系,而isa指针描述了实例所属的类。通过这张布局关系图即可执行“类型信息查询”。我们可以查出对象能否能响应某个选择子,是否遵从某项协议,并且看出它在类继承体系的位置。

类型信息查询

可以用类型信息查询方法来检视类继承体系。不同的类型信息查询方法之间有一些小区别。

例如:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据