主要剖析內(nèi)部源碼
首先看一下objc_class的實(shí)現(xiàn)
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;//緩存: 一種優(yōu)化柑司,調(diào)用過(guò)的方法存入緩存列表踊餐,下次調(diào)用先找緩存
struct objc_protocol_list *protocols //協(xié)議列表
#endif
};
/* Use `Class` instead of `struct objc_class *` */
主要構(gòu)成 isa指針藕漱、成員列表欲侮、方法列表。