下载objc4源码:opensource.apple.com/tarballs/
-
打开项目,搜索:
struct objc_class
,发现runtime.h中:
可以发现:其中有isa
指针,superclass
指针,ivar
成员变量,method_list
方法列表,cache
缓存,protocol_list
协议列表。不过值得注意的是,这个结构体在OBJC2以后已经被抛弃了:
OBJC2_UNAVAILABLE
。 -
所以我们继续寻找最新的结构:
查看objc_object结构如下,其实其中就是存放着isa指针:
最终分析结果如下:
其实新的结构体和老的结构体没有本质上的区别,该有的主要特征信息都有了,而且还多了一些成员变量。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END