从 “objc.h”:在Cocoa中,Class类是如何定义的?
typedef struct objc_class *Class;
但在 “runtime.h”:
struct objc_class {
Class isa;
#if !__OBJC2__
Class super_class OBJC2_UNAVAILABLE;
const char *name OBJC2_UNAVAILABLE;
long version OBJC2_UNAVAILABLE;
long info OBJC2_UNAVAILABLE;
long instance_size OBJC2_UNAVAILABLE;
struct objc_ivar_list *ivars OBJC2_UNAVAILABLE;
struct objc_method_list **methodLists OBJC2_UNAVAILABLE;
struct objc_cache *cache OBJC2_UNAVAILABLE;
struct objc_protocol_list *protocols OBJC2_UNAVAILABLE;
#endif
} OBJC2_UNAVAILABLE;
/* Use `Class` instead of `struct objc_class *` */
到底是什么Class
?
'typedef'表明它是一个指向'struct objc_class'的指针,不是? – dasblinkenlight
@dasblinkenlight他可能对'Class'成为'struct objc_class'成员感到困惑。 – trojanfoe
是的,我很困惑 - 请你能向我解释它到底是什么吗?因为我认为这是两个标题之间的循环引用。 –