0
点赞
收藏
分享

微信扫一扫

Objective-C对象:instance、class、meta-class

尤克乔乔 2021-09-29 阅读 72
日记本

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

举报

相关推荐

0 条评论