3.isa

作者: CC同学_HelloCC | 来源:发表于2020-09-11 23:12 被阅读0次
isa流程图.png

isa指向 ->
实例isa -> 类|类isa -> 元类 | 元类isa -> 根元类|根元类isa -> 根元类isa

一切都继承( --> ) 根类 NSObject
子类 --> 父类 --> 根类
子元类 --> 父元类 --> 根元类 --> 根类


如下 Class 的源代码
bits 存储的是类属性与方法
可以通过 Class 的 isa 加 32 字符获取 bits

typedef struct objc_class *Class;

struct objc_class : objc_object {
    // Class ISA;  // 8 字符
    Class superclass;  // 8 字符
    cache_t cache;      // 16 字符       // 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();
    }
    void setData(class_rw_t *newData) {
        bits.setData(newData);
    }

    void setInfo(uint32_t set) {
        ASSERT(isFuture()  ||  isRealized());
        data()->setFlags(set);
    }
  ... 后面都是方法
  
}

如下objc_object源码

typedef struct objc_object *id;

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

相关文章

  • 3.isa

    isa指向 ->实例isa -> 类|类isa -> 元类 | 元类isa -> 根元类|根元类isa -> 根元...

  • 五、isa 和类结构分析

    主要内容:围绕类展开探索一、isa 走位 1.类的分析  2.元类  3.isa走位  4.superClass ...

  • iOS开发-8.Runtime

    1.Objective-C中的Runtime 2.实现用一个字节来存储3个BOLL变量 3.isa详解 4.Cla...

  • 四、isa 指针关联类

    主要内容:1.OC对象的本质2.isa 与 类的关联原理3.isa 与 类的关联验证 1.OC对象的本质 先了解编...

  • iOS开发-3.isa指针&superclass指针

    1.对象的isa指针指向那里? 2.class对象的superclass指针 3.meta-class对象的sup...

网友评论

      本文标题:3.isa

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