1.结构体 objc_class
1 struct objc_class { 2 Class isa OBJC_ISA_AVAILABILITY; 3 4 #if !__OBJC2__ 5 Class super_class OBJC2_UNAVAILABLE; 6 const char *name OBJC2_UNAVAILABLE; 7 long version OBJC2_UNAVAILABLE; 8 long info OBJC2_UNAVAILABLE; 9 long instance_size OBJC2_UNAVAILABLE; 10 struct objc_ivar_list *ivars OBJC2_UNAVAILABLE; 11 struct objc_method_list **methodLists OBJC2_UNAVAILABLE; 12 struct objc_cache *cache OBJC2_UNAVAILABLE; 13 struct objc_protocol_list *protocols OBJC2_UNAVAILABLE; 14 #endif
2.指向结构objc_class的指针类型 Class
3.结构体objc_object里面包含成员变量 Class isa
4.指向结构体objc_object的指针类型 id
1 #if !OBJC_TYPES_DEFINED 2 /// An opaque type that represents an Objective-C class. 3 typedef struct objc_class *Class; 4 5 /// Represents an instance of a class. 6 struct objc_object { 7 Class isa OBJC_ISA_AVAILABILITY; 8 }; 9 10 /// A pointer to an instance of a class. 11 typedef struct objc_object *id; 12 #endif