主要剖析内部源码
首先看一下objc_class的实现
struct objc_class {
Class isa ;
Class super_class ;
const char *name ;
long version ;
long info ;
long instance_size ;
struct objc_ivar_list *ivars //成员变量列表
struct objc_method_list **methodLists; //方法列表
struct objc_cache *cache;//缓存: 一种优化,调用过的方法存入缓存列表,下次调用先找缓存
struct objc_protocol_list *protocols //协议列表
#endif
};
/* Use `Class` instead of `struct objc_class *` */
主要构成 isa指针、成员列表、方法列表。