【MJ-iOS底层原理总结】类对象和元类对象的结构

206 阅读1分钟
下载objc4源码:opensource.apple.com/tarballs/
  1. 打开项目,搜索:struct objc_class,发现runtime.h中: image.png 可以发现:其中有isa指针,superclass指针,ivar成员变量,method_list方法列表,cache缓存,protocol_list协议列表。

    不过值得注意的是,这个结构体在OBJC2以后已经被抛弃了:OBJC2_UNAVAILABLE

  2. 所以我们继续寻找最新的结构: image.png 查看objc_object结构如下,其实其中就是存放着isa指针: image.png 最终分析结果如下: image.png 其实新的结构体和老的结构体没有本质上的区别,该有的主要特征信息都有了,而且还多了一些成员变量。