如果实例变量属于类的实例,那么类变量应该属于元类的实例。但是我的Objective-C元类经验告诉我这不太可能。
我想知道class_getClassVariable
跟class_getInstanceVariable
的区别,以及为什么运行时库中没有class_setClassVariable
。
如果实例变量属于类的实例,那么类变量应该属于元类的实例。但是我的Objective-C元类经验告诉我这不太可能。
我想知道class_getClassVariable
跟class_getInstanceVariable
的区别,以及为什么运行时库中没有class_setClassVariable
。
我在这里找到了一个关于它的讨论: http://lists.apple.com/archives/objc-language/2008/Feb/msg00021.html
不可能。没有编译器支持,也没有运行时支持;
class_getClassVariable(cls, name)
只是调用了class_getInstanceVariable(cls->isa, name)
。如果可能的话,它也不太可能在每个子类上给你一个新变量。Objective-C 的元类还不足以使其很好地工作。