isa 指针
在object-c 中每个对象都有一个isa指针指向它的类。
类中包含信息如下:
1.类的描述信息
2.对象的成员变量列表
3.对象的方法列表
4.对象接受消息的列表
类也是个对象,是另一个类的实例,这个类叫做元类(metaClass)。类的isa指针指向(metaClass)
1.类方法都保存在元类中
2.元类存在继承关系,元类顶层叫做根元类(rootClass),根元类的isa指针指向自己,形成闭环
即NSObject中的isa指针指向自己。
3.类方法被调用时,元类先查找本身是否有该类方法,没有则去查找父元类,直到继承链顶层。
总结
对象的 成员变量、方法列表、消息列表 都保存在它的类中,通过isa指针来指向
类的方法 都保证在它的metaClass中,通过isa指针来指向。
网友评论