11

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

我想知道class_getClassVariable与 相比有什么作用class_getInstanceVariable,以及为什么运行时没有 a class_setClassVariable

4

2 回答 2

13

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

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

如果可能的话,它可能不会在每个子类上给你一个新变量。Objective-C 的元类还不够一流,无法正常工作。

于 2009-12-30T16:28:19.400 回答
1

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

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

于 2009-12-30T15:57:45.503 回答