class_getClassVariable()做什么?

时间:2009-12-30 15:21:36

标签: objective-c class metaclass objective-c-runtime class-variables

如果实例变量属于类的实例,那么类变量将属于元类的实例,我认为。但是我对Objective-C元类的经验告诉我这不太可能。

我想知道class_getClassVariableclass_getInstanceVariable相比有什么,以及为什么运行时没有class_setClassVariable

2 个答案:

答案 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中没有类变量这样的东西。

我的猜测是运行时支持类变量,但不支持语言。