美文网首页
对isa的理解

对isa的理解

作者: guoshengboy | 来源:发表于2020-04-28 17:22 被阅读0次
图1.png

我们可以从图1看到 NSObject有一个属性isa用Class来定义,那么我点击Class接着看


图2.png

我们可以从图2可以看到Class是objc_class的一个指针,那么我们可以认为图1的isa是一个类对象,由于类是一个类对象,我们可以认为他是另外一个类的单利,那么这个类我们称为元类,点击objc_class接着看元类如何定义
我们点击objc_class点击查看


图3.png

图3我们可以看到也有一个isa 他会指向根元类, 根元类会指向自己

总结:
每一个实例对象里面都有一个isa指针,指向class类对象;

每一个class类对象里面有一个isa指针,指向metaclass元类对象;
每一个class类对象里面有一个superclass指针,指向其父类的class类对象;其父类的class类对象里面也有一个superclass指针,指向根类对象;根类对象中的superclass指针为nil(而不是第二张图中的没有);

每一个metaclass元类对象里面有一个superclass指针,指向其父类的metaclass元类对象;最终指向RootMetaClass,RootMetaClass的superclass指针指向NSObject,即根类
每一个metaclass元类对象有一个isa指针,指向根元类对象;根元类对象的isa指针指向自己;

class类对象中的objc_method_list为对象方法;
metaclass元类中存放的objc_method_list是类方法;

相关文章

  • 对isa的理解

    在arm64位之前就是个普通的指针,里面存储这类对象还有元类对象地址值,在arm64位开始,进行了优化,采用uni...

  • 对isa的理解

    我们可以从图1看到 NSObject有一个属性isa用Class来定义,那么我点击Class接着看 我们可以从图2...

  • iOS Runtime面试题(isa指针)

    说一下对 isa 指针的理解, 对象的isa 指针指向哪里?isa 指针有哪两种类型? isa 等价于 is ki...

  • iOS Runtime面试题(说一下对 isa 指针的理解)

    说一下对 isa 指针的理解, 对象的isa 指针指向哪里?isa 指针有哪两种类型? isa 等价于 is ki...

  • iOS开发 Runtime 流程图

    你了解多少Runtime? isa 指针的理解 实例对象 isa 指向类对象 类对象指 isa 向元类对象 元类对...

  • 对isa、IMP、SEL理解

    ISA 每一个类都会有isa指针,该指针指向类的结构体,如在底层objc_msgSent() 就是通过isa来查找...

  • isa理解

    由类生成对象。对象的结构体实例通过isa这个成员变量来保持类的结构体实例指针,建立类与对象间的关系。oc运行时为每...

  • isa的理解

    在NSObject.h里面: isa就是指向谁(哪个类) 再点开 Class 的定义: 1,当我们调用[child...

  • NSObject isa

    title: NSObject isa 一直对NSObject isa理解不是很好,看到个大牛写的博客后,理解很多...

  • 『ios』加深对 isa superclass 理解

    有下面这种情况 如果我执行 会发生什么情况呢? 看下面这张图,我觉得可以很好地解释。 因为oc方法执行的本质是发送...

网友评论

      本文标题:对isa的理解

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