1.本质
类的本质其实也是一个对象(类对象)
程序中第一次使用该类的时候被创建,在整个程序中只有一份。
此后每次使用都是这个类对象,它在程序运行时一直存在。...类对象是一种数据结构,存储类的基本信息:类大小,类名称,类的版本,继承层次,以及消息与函数的映射表等
类对象代表类,Class类型,对象方法属于类对象
如果消息的接收者是类名,则类名代表类对象
所有类的实例都由类对象生成...,类对象会把实例的isa的值修改成自己的地址,每个实例的isa都指向该实例的类对象
2.如何获取类对象
通过实例对象
格式:[实例对象 class];
如: [dog class];
通过类名获取(...所以为了保证父类的类方法可以在子类中可以被调用,所以子类的元类会继承父类的元类,换而言之,类对象和元类对象有着同样的继承关系。...而本质上,这两个类型信息查询方法是使用对象的isa指针获取对象所属的类(因为类对象也是对象,所以也有isa指针,该指针指向元类,也就是类对象所属的类),然后通过类继承体系中的superclass指针在继承体系中游走