isa 指针占用8字节,64位。64位中不同的位代表不同的含义:
对象.isa -> 类.super -> 父类.super -> 根类.super -> nil
类.isa -> 元类.super -> 父元类.super -> 根元类.super -> 根类.super -> nil
元类.isa = 父元类.isa = 根元类.isa = 根元类
下面的打印结果是什么:
// [NSObject class] = NSObject
// object_getClass((id)[NSObject class]) = NSObject meta class
// 沿着 NSObject 的继承者链去找根元类 -> 根类 == NSObject meta class 或者 NSObject meta class 的父类的实例
BOOL
res1 = [(id)[NSObject
class] isKindOfClass:[NSObject
class]];
BOOL
res2 = [(id)[NSObject
class] isMemberOfClass:[NSObject
class]];
BOOL
res3 = [(id)[TestObject
class] isKindOfClass:[TestObject
class]];
BOOL
res4 = [(id)[TestObject
class] isMemberOfClass:[TestObject
class]];
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。