代码之家  ›  专栏  ›  技术社区  ›  Jonathan Sterling

类getClassvariable()的作用是什么?

  •  11
  • Jonathan Sterling  · 技术社区  · 15 年前

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

    我在想什么 class_getClassVariable 与…相反 class_getInstanceVariable 为什么没有 class_setClassVariable 在运行时。

    2 回复  |  直到 7 年前
        1
  •  13
  •   Benjamin Hodgson    9 年前

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

    不,不可能。没有编译器支持,也没有 运行时支持; class_getClassVariable(cls, name) 仅仅是呼叫 class_getInstanceVariable(cls->isa, name) .

    如果可能的话,它可能不会给你一个新的变量 不管怎样,每个子类。Objective-C的元类不是第一个- 这门课足够好用了。

        2
  •  1
  •   Philippe Leybaert    15 年前

    类getClassvariable()函数没有意义,因为在目标C中没有类变量。

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