先来看看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中存着类名,成员变量列表等。