先来看看Class

Class是一个objc_class结构体的对象,再来看objc_class
注意OBJC_TYPES_DEFINED和OBJC2_UNAVAILABLE,OBJC2_UNAVAILABLE不可用,代表oc2.0以后不会用了,而OBJC_TYPES_DEFINED也不会进,因为没有定义OBJC_TYPES_DEFINED,看底层OBJC_TYPES_DEFINED的值是1,这里会在后面截图给大家看。现在来看一下objc-runtime-new.h中的objc_class。

objc_class继承自objc_object,objc_class中包括父类,缓存等,这里需要注意看objc_class结构体中的class_rw_t,class_rw_t一个函数了。再来看看class_rw_t。

class_rw_t中存储了方法列表,属性列表,协议列表等等。再看看class_rw_t中的class_ro_t。

class_ro_t中存着类名,成员变量列表等。
博客主要围绕iOS开发展开,深入剖析了Class的本质。指出Class是objc_class结构体的对象,介绍了objc_class继承自objc_object,包含父类、缓存等。还分析了objc_class中的class_rw_t,其存储方法、属性、协议列表等,以及class_rw_t中的class_ro_t,存着类名、成员变量列表等。
837

被折叠的 条评论
为什么被折叠?



