美文网首页
Objective-C对象:instance、class、met

Objective-C对象:instance、class、met

作者: YYYYYY25 | 来源:发表于2018-09-04 15:11 被阅读12次

isa、superclass:

1 instance的isa指向class

2 class的isa指向meta-class

3 class的superclass指向父类的class(如果没有父类,superclass指针为nil)

4 meta-class的superclass指向父类的meta-class(基类的meta-class的superclass指向基类的class)

5 instance调用对象方法:instance的isa找class,如果没找到,就去superclass中找

6 class调用类方法:class的isa找meta-class,如果没找到,就去superclass中找

meta-class(元类对象):

获取NSObject的meta-class对象

Class objectMetaClass = object_getClass([NSObject class]); // Runtime API

以下代码获取的objectClass是class对象,并不是meta-class对象

Class objectClass = [[NSObject class] class];

查看class是否为meta-class

BOOL result = class_isMetaClass([NSObject class]); // Runtime API

相关文章

网友评论

      本文标题:Objective-C对象:instance、class、met

      本文链接:https://www.haomeiwen.com/subject/aiwgwftx.html