Frage

Wenn Instanzvariablen gehören in eine Instanz einer Klasse, Klassenvariablen zu einer Instanz einer Metaklasse gehören würde, sollte ich denken. Aber meine Erfahrung mit dem Objective-C metaclass sagt mir, dass dies unwahrscheinlich ist.

Ich frage mich, was class_getClassVariable tut als zu class_getInstanceVariable dagegen, und warum gibt es keinen class_setClassVariable in der Laufzeit.

War es hilfreich?

Lösung

Ich fand eine Diskussion über es hier: http://lists.apple.com/archives/objc- Sprache / 2008 / Feb / msg00021.html

  

Nein, es ist nicht möglich. Es gibt keine Compiler-Unterstützung, und es gibt keine   Laufzeitunterstützung; class_getClassVariable(cls, name) lediglich ruft   class_getInstanceVariable(cls->isa, name).

     

Wenn es möglich wäre, würde es wahrscheinlich nicht geben Ihnen eine neue Variable auf   Jede Unterklasse sowieso. Objective-C metaclasses ist nicht ganz erst-   Klasse genug für die gut zu funktionieren.

Andere Tipps

Die Funktion class_getClassVariable () ist nicht sinnvoll, denn es gibt nicht so etwas wie eine Klassenvariable in Objective C

Meine Vermutung ist, dass Klassenvariablen, die von der Laufzeit unterstützt werden, aber nicht durch die Sprache.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top