如果实例变量属于类的实例,那么类变量将属于元类的实例,我应该认为。但我对 Objective-C 元类的经验告诉我,这不太可能。
我想知道class_getClassVariable
与 相比有什么作用class_getInstanceVariable
,以及为什么运行时没有 a class_setClassVariable
。
如果实例变量属于类的实例,那么类变量将属于元类的实例,我应该认为。但我对 Objective-C 元类的经验告诉我,这不太可能。
我想知道class_getClassVariable
与 相比有什么作用class_getInstanceVariable
,以及为什么运行时没有 a class_setClassVariable
。
我在这里找到了一个关于它的讨论:http: //lists.apple.com/archives/objc-language/2008/Feb/msg00021.html
不,这是不可能的。没有编译器支持,也没有运行时支持;
class_getClassVariable(cls, name)
只是调用class_getInstanceVariable(cls->isa, name)
.如果可能的话,它可能不会在每个子类上给你一个新变量。Objective-C 的元类还不够一流,无法正常工作。
class_getClassVariable() 函数没有意义,因为在 Objective C 中没有类变量这样的东西。
我的猜测是运行时支持类变量,但语言不支持。