问题 class_getClassVariable()做什么?


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

我想知道是什么 class_getClassVariable 与...相反 class_getInstanceVariable,为什么没有 class_setClassVariable 在运行时中。


5209
2017-12-30 15:21


起源



答案:


我在这里找到了一个讨论: http://lists.apple.com/archives/objc-language/2008/Feb/msg00021.html

不,这是不可能的。没有编译器支持,也没有   运行时支持; class_getClassVariable(cls, name) 只是打电话    class_getInstanceVariable(cls->isa, name)

如果可能,它可能不会给你一个新的变量   无论如何每个子类。 Objective-C的元类不是第一个 -   上课足以让他们顺利运作。


13
2017-12-30 16:28





class_getClassVariable()函数没有意义,因为在Objective C中没有类变量这样的东西。

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


1
2017-12-30 15:57