美文网首页
isa指针指向和类结构分析

isa指针指向和类结构分析

作者: luxing123 | 来源:发表于2020-09-14 17:52 被阅读0次

isa指针指向和类结构分析

isa指向图

经典的isa指向图


isa流程图.png

从这张图能总结出
类继承自父类,父类继承于NSObject,NSObject继承于nil;
isa指向为:对象->类对象->元类对象->根元类; 根元类的isa指向自己,且根元类继承自NSObject;

类结构分析

ios类到底是什么?

把类编译成c++文件,发现 类被编译成一个struct

typedef struct objc_class *Class;

我们在源码中直接搜索 struct objc_class,然后定位到 objc-runtime-new.h 文件

struct objc_class : objc_object {
    // Class ISA;
    Class superclass;
    cache_t cache;             // formerly cache pointer and vtable
    class_data_bits_t bits;    // class_rw_t * plus custom rr/alloc flags

    class_rw_t *data() const {
        return bits.data();
    }
    
    // 省略部分代码.......
}

/// Represents an instance of a class.
struct objc_object {
    Class _Nonnull isa  OBJC_ISA_AVAILABILITY;
};

objc_class 继承 objc_object能看出两个问题

  1. 对象与objc_object关系是继承关系
    2.objc_object中有isa,这就验证了对象,类,元类都有isa

objc_class, objc_object ,NSObject,object,isa之间的关系图

2251862-7b4c0996f92eb166.png

具体分析类结构

ObjC 类中的属性、方法还有遵循的协议等信息都保存在 class_rw_t中

WX20200914-174552@2x.png

相关文章

  • isa指针指向和类结构分析

    isa指针指向和类结构分析 isa指向图 经典的isa指向图 从这张图能总结出类继承自父类,父类继承于NSObje...

  • 类的结构分析

    前言 书接上回isa结构分析,我们得知,对象的isa指针指向类,确切的说,是isa指针的shiftcls位域中指向...

  • ISA指向、类结构

    ISA指向、类结构 1.ISA指向 上次在对象本质和ISA指针[https://www.jianshu.com/p...

  • iOS开发中方法查找流程图

    实例对象的isa指针指向类对象,类对象的isa指针指向元类,元类的isa指针指向根元类,根元类的isa指针指向自己...

  • 元类(Meta Class)

    struct objc_object结构体实例它的isa指针指向类对象,类对象的isa指针指向了元类,super_...

  • isa指针superclass

    isa指针的指向 实例对象的isa指针指向类对象 类对象的isa指针指向元类对象 isa的作用就是用来给实例找到各...

  • 对isa、IMP、SEL理解

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

  • iOS开发笔记-类和元类

    先说几个概念:实例,类,元类类的定义中有一个isa指针指向元类,元类结构体中又有个isa指针指向根元类 详情参考下...

  • 类对象、元类

    任何实例的isa指针指向其类对象,类对象的isa指针指向其元类对象,元类对象的isa指针指向根元类对象,根元类对象...

  • iOS 对象和isa指针详解

    一个objc对象的isa指针指向他的类对象,类对象的isa指针指向他的元类,元类的isa指针指向根元类,所有的元类...

网友评论

      本文标题:isa指针指向和类结构分析

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