NSObject内存中的第一个属性是isa,后面有验证
Class是objec_class的实例对象
objec_class是一个结构体,并且标明了第一位是ISA,图示红框处注释
咱们注意到上图的第二个位置是superclass咱们验证以下
补充一点lldb的操做
p/x :16进制打印内存地址
x/2gx: 打印对象的前两段内存地址,第一位isa,第二位superclass
po:这个不用多说你们都了解
复制代码
(第一个16进制都是isa)
,能够发现:TestObject
,类TestObject的isa指向了元类TestObject
,他们的名字是如出一辙的,元类是系统在编译期动态生成的。object对象的isa -> TestObject类 -> 元类TestObject -> NSObject -> NSObject
复制代码
1.NSObject 的父类是nil。
bash
2.根元类的父类是NSObject。
markdown
3.NSObject的isa指向自身。
spa