class_getClassVariable() 有啥作用?

Posted

技术标签:

【中文标题】class_getClassVariable() 有啥作用?【英文标题】:What does class_getClassVariable() do?class_getClassVariable() 有什么作用? 【发布时间】:2010-12-31 03:26:33 【问题描述】:

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

我想知道 class_getClassVariable 相对于 class_getInstanceVariable 做了什么,以及为什么运行时中没有 class_setClassVariable

【问题讨论】:

【参考方案1】:

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

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

如果可能的话,它可能不会给你一个新的变量 无论如何,每个子类。 Objective-C 的元类并不是第一个—— 类足以让它运作良好。

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于class_getClassVariable() 有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章