如果实例变量属于类的实例,那么类变量将属于元类的实例,我认为。但是我对Objective-C元类的经验告诉我这不太可能。
我想知道class_getClassVariable
与class_getInstanceVariable
相比有什么,以及为什么运行时没有class_setClassVariable
。
答案 0 :(得分:13)
我在这里找到了一个讨论: http://lists.apple.com/archives/objc-language/2008/Feb/msg00021.html
不,这是不可能的。没有编译器支持,也没有 运行时支持;
class_getClassVariable(cls, name)
只是打电话class_getInstanceVariable(cls->isa, name)
。如果有可能,它可能不会给你一个新的变量 无论如何每个子类。 Objective-C的元类不是第一个 - 足以使其运作良好。
答案 1 :(得分:1)
class_getClassVariable()函数没有意义,因为在Objective C中没有类变量这样的东西。
我的猜测是运行时支持类变量,但不支持语言。