Runtime面试题(类对象的数据结构?)

类对象的数据结构?

具体可以参看 Runtime 源代码。

类对象就是 objc_class。
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() { 
        return bits.data(); // &FAST_DATA_MASK 获取地址值
    }

它的结构相对丰富一些。继承自objc_object结构体,所以包含isa指针

  • isa:指向元类
  • superClass: 指向父类
  • Cache: 方法的缓存列表
  • data: 顾名思义,就是数据。是一个被封装好的 class_rw_t 。

文集推荐

全网最全面试题合集
iOS进阶 文章被收录于专栏

iOS 开发在上手时可能会有些令人生畏。无论是 Objective-C 还是 Swift 在别处都没有广泛的应用,iOS 这个平台几乎对一切都有一套不同的叫法,而尝试把你的代码跑在真机上的过程难免磕磕碰碰。这份持续更新的专栏就是来帮你的。

全部评论

相关推荐

10-29 15:51
嘉应学院 Java
后端转测开第一人:你把简历的学历改成北京交通大学 去海投1000份发现基本还是没面试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务