美文网首页
Objective-C isa 指针

Objective-C isa 指针

作者: 天蝎座沫沫 | 来源:发表于2018-03-23 17:07 被阅读20次

在Objective-C中,任何类的定义都是对象。类和类的实例(对象)没有任何本质上的区别。任何对象都有isa指针。

图解(从左向右看 从下向上看): 1700455E-C59F-4751-BAFD-177E08CC3104.png

每一个对象本质上都是一个类的实例。其中类定义了成员变量和成员方法的列表。对象通过对象的isa指针指向类。

每一个类本质上都是一个对象,类其实是元类(meteClass)的实例。元类定义了类方法的列表。类通过类的isa指针指向元类。

所有的元类最终继承一个根元类,根元类isa指针指向本身,形成一个封闭的内循环。

根类 有三个指向
根类指向nil
根类是所有类的祖先 其他的都是继承他的
根类作为一个类对象 ,他也有isa指针 isa指针指向根元类

根元类 有四个指向
根元类作为类对象最终继承自根类
isa指针指向自己
是所有元类的祖先
所有元类的isa指针都指向根元类

**通俗版
A的一个实例 名字叫做A_instance
他有一个isa指针 指向的就是这个类的定义A
A作为一个类它继承在ASupper
A作为一个对象他也有isa 指向A的元类 这个元类是没有名字的 或者你可以理解成Ameta
为什么要有这个元类呢?
简单点说就是 节省空间
你可以看到 实例方法存放在类中 类方法存放在元类中
也就是我们对应的-方法 和+方法

参考文章:
https://www.jianshu.com/p/41735c66dccb
http://justsee.iteye.com/blog/2163905

相关文章

  • Objective-C isa 指针 与 runtime 机制文

    一.isa指针 要认识什么是isa指针,我们得先明确一点: 在Objective-C中,任何类的定义都是对象。类和...

  • Objective-C isa 指针 与 runtime 机制

    一.isa指针 要认识什么是isa指针,我们得先明确一点: 在Objective-C中,任何类的定义都是对象。类和...

  • isa指针

    一.isa指针 要认识什么是isa指针,我们得先明确一点: 在Objective-C中,任何类的定义都是对象。类和...

  • ios - objectC 的isa 详解

    一.isa指针 要认识什么是isa指针,我们得先明确一点: 在Objective-C中,任何类的定义都是对象。类和...

  • Objective-C isa 指针 与 runtime 机制

    一.isa指针 要认识什么是isa指针,我们得先明确一点: 在Objective-C中,任何类的定义都是对象。类和...

  • isa 指针

    isa指针 要认识什么是isa指针,我们得先明确一点: 在Objective-C中,任何类的定义都是对象。类和类的...

  • isa指针

    一.isa指针要认识什么是isa指针,我们得先明确一点:在Objective-C中,任何类的定义都是对象。类和类的...

  • iOS底层原理之isa指针

    isa指针 在Objective-C中,实例对象的isa指向类对象,类对象的isa指向元类对象.其实这样说是有一些...

  • IOS - 64位中 isa 区域的变化

    原文链接 不再是指针的 isa 在 iOS arm64 的架构中,属于 Objective-C 对象的 isa 空...

  • iOS 常见知识点总结

    1,Objective-C 对象内存结构中的 isa 指针是用来做什么的,有什么用? Objective-C 是一...

网友评论

      本文标题:Objective-C isa 指针

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