如果实例变量属于类的实例,那么类变量将属于元类的实例,我认为。但是我对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的元类不是第一个 - 上课足以让他们顺利运作。
class_getClassVariable()函数没有意义,因为在Objective C中没有类变量这样的东西。
我的猜测是运行时支持类变量,但语言不支持。