iOS Runtime 之 isa 粗谈

2020-05-01  本文已影响0人  一抹风情

在进入理解 isa

何为Runtime

isa

何为isa

objc_class objc.h

1、objc_object中的isa 指的是对象的类(Class);
2、objc_class中的isa只的是类的元类;
3 、 superClass是一层层集成的,到最后NSObject的superClass是nil.而NSObject的isa指向根元类,这个跟元类的isa指向它自己,而它的superClass是NSObject,也就是最后形成一个环,这个环让我想起了先有鸡还是先有蛋的问题.
4、 mateClass也是相互继承的.
5 、这个逻辑就想着objc_class的struct,里面有个isa属性,还有个super_class属性,他俩都是指针,其实在objc_class的定义中也能看出来,每一个objc_class都有isa,但是不一定会有super_class,近三天每天想一次.

对象的isa指针指向类,类对象的isa指针指向元类,元类对象的isa指针指向根元类,根元类的isa指针指向他本身。

上一篇下一篇

猜你喜欢

热点阅读