美文网首页
类的结构分析

类的结构分析

作者: CS_SDN | 来源:发表于2019-12-22 23:02 被阅读0次
 
struct objc_class : objc_object {
    // Class ISA;    //隐性存在(继承而来)的isa 占8个字节
    Class superclass; //父类对象地址 占8个字节
    cache_t cache;      //是结构体,16个字节而不是8个字节       //  pointer and vtable
    class_data_bits_t bits;    // class_rw_t * plus custom rr/alloc flags

    class_rw_t *data() { 
        return bits.data();
    }
    //省略其他
 }    
  • cache_t 相当于缓存, 它要根据自身结构体所容纳的空间大小(如下图红框部分)来决定其所占字节数。(另外,cache_t是结构体,不是结构体指针.Class为结构体指针,所占字节为8)


    cache_t结构体.png

bits相当于值

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

    class_rw_t *data() { 
        return bits.data();
    }
    //......其他的省略
}

代码论证

  • 属性:存在于class里,在rw中,存在于property中(且会生成一个带下划线的ivar,即_ivar),并且存在于bits中.

  • 成员:变量存在于ivar中

  • 对象方法:存在于类中,

  • 类方法:存在于元类中,要用类去查找——>元类,看元类中是否有这个实例方法

  • 对象存在类中是对象方法

  • 类方法存在元类中类似于实例方法

相关文章

  • iOS 类原理探索:类的结构分析

    OC 类原理探索 系列文章 OC 类原理探索:类的结构分析 OC 类原理探索:类结构分析补充[https://ju...

  • 多线程基础(十三):java中的FutureTask

    [toc] FutureTask源码分析 1.类结构及常量、变量 1.1 类结构 FutureTask类结构如下:...

  • iOS类结构:cache_t分析

    一、cache_t 内部结构分析 1.1 在iOS类的结构分析中,我们已经分析过类(Class)的本质是一个结构体...

  • 类,类结构分析

    忙不是不学习的借口 在isa和类的关联[https://www.jianshu.com/p/079a6ad90f1...

  • iOS-OC底层04:类结构分析

    类结构分析 通过lldb来分析类结构 查看objc2的内存情况 类对象只有一份,isa对象-> 类(LGPerso...

  • iOS-底层分析之类的结构分析

    类的结构分析 本文主要分析iOS中的类以及类的结构,下面我们通过一个例子来探索类的结构 我们定义一个WPerson...

  • 类结构分析

    这片文章主要分析的是类的结构以及对象-类-元类-根元类之间的走位. 一. isa的指向以及类之间的关系 准备工作定...

  • 类结构分析

    类结构分析 回顾 前面我们讲了alloc 流程中对象的创建过程,下面我们来探索一下类的结构,废话不多说,开始~ 类...

  • 类结构分析

    开发中经常创建一个 TestClass.h 和 TestClass.m 文件,而这个 TestClass 就是我们...

  • 类的结构分析

    神图镇楼,相信做过iOS开发的同学一定非常熟悉这张经典图,每次看这张图都有不一样的体会,今天我们就借这张图,引出我...

网友评论

      本文标题:类的结构分析

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