美文网首页
isa和superclass

isa和superclass

作者: 冰棍儿好烫嘴 | 来源:发表于2023-03-15 21:32 被阅读0次
  • instanceisa指向class
    当调用对象方法时,通过instanceisa找到class,最后找到对象方法的实现进行调用
  • classisa指向meta-class
    当调用类方法时,通过class的isa找到meta-class,最后找到类方法的实现进行调用

class对象(类对象)的superclass指针

  • 当Student的instance对象要调用Person的对象方法时,会先通过isa找到Studentclass,然后通过superclass找到Person的class,最后找到对象方法的实现进行调用

meta-class对象(元类对象)的superclass指针

  • 当Student的class要调用Person的类方法时,会先通过isa找到Student的meta-class,然后通过superclass找到Person的meta-class,最后找到类方法的实现进行调用

isa、superclass总结

  • instanceisa指向class

  • classisa指向meta-class

  • meta-classisa指向基类的meta-class

  • classsuperclass指向父类的class:如果没有父类,superclass指针为nil

  • meta-classsuperclass指向父类的meta-class
    基类的meta-classsuperclass指向基类的class

  • instance调用对象方法的轨迹
    isa找到class,方法不存在,就通过superclass找父类

  • class调用类方法的轨迹
    isa找到meta-class,方法不存在,就通过superclass找父类

  • 从64bit开始,isa需要进行一次位运算,才能计算出真实地址。

objc4源码下载

类对象(Class对象)和元类对象(meta-class对象)在内存中结构是一样的,都是Class类型。
c++的结构体是可以继承的

窥探struct objc_class(类对象和元类对象Class结构体)的结构

对象的isa指针指向哪里?

  • instance对象的isa指向class对象
  • class对象的isa指向meta-class对象
  • meta-class对象的isa指向基类的meta-class对象

OC的类信息存放在哪里?

  • 对象方法、属性、成员变量(不是具体的值,放的是成员变量的信息,比如成员变量叫什么名字,是什么类型的等等)、协议信息存放在class对象中
  • 类方法存放在meta-class对象中
  • 成员变量的具体值,存放在instance对象中

相关文章

  • iOS-浅谈OC中isa和superclass的指针指向

    目录 isa指针----isa指针指向superclass指针----class对象的superclass指针--...

  • iOS:isa与superclass

    目录一,对象的三种类型二,对象的存储信息三,isa指针四,superclass指针五,isa和superclass...

  • 笔记 - isa和superclass

    isa的调用 class的superclass meta-class的superclass 总结1 总结2 isa...

  • isa和superclass

    isa指针 将Objective-c代码转换成 C\C++的代码 找到[person personInstance...

  • isa和SuperClass

    开局一张图 刚开始看这图时,我也是懵的 其实也很好理解,这得分开看 虚线 实线 根类、基类 一般都是指:NSObj...

  • isa和superClass

    isa 对象的isa指针是指向哪里的? instance的 isa 指向 class当调用对象方法时,通过inst...

  • isa和superclass

    D、题:对象的isa指针指向哪里? 拓展: class对象的superclass指针指向哪里? meta-clas...

  • isa 和 superclass

    OC对象的分类OC中的对象,简单来说可以分为三大类:instance 对象(实例对象)、class 对象(类对象)...

  • isa 和 superclass

    实例对象的 isa 指向类对象,类对象的 isa 指向元类对象,元类的isa 指向基类的元类对象,基类的元类对象的...

  • isa和superClass

    Objective-C的本质 我们平时编写的Objective-C代码,底层实现其实都是C\C++代码,Objec...

网友评论

      本文标题:isa和superclass

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