Если бы переменные экземпляра принадлежат экземпляру класса, переменные класса принадлежали бы экземпляру метакласса, я должен думать. Но мой опыт с метаклассом Objective C говорит мне, что это маловероятно.
Я задаюсь вопросом что class_getClassVariable
делает в противоположность class_getInstanceVariable
, и почему нет a class_setClassVariable
во времени выполнения.
Я нашел обсуждение этого здесь: http://lists.apple.com/archives/objc-language/2008/Feb/msg00021.html
Нет, это невозможно. Поддержки компилятора нет и нет. поддержка выполнения;
class_getClassVariable(cls, имя)
просто вызываетclass_getInstanceVariable(cls->isa, name)
.Если бы это было возможно, то, скорее всего, это не дало бы вам новую переменную на каждый подкласс в любом случае. Метаклассы Объектива-С не являются первыми. достаточно для того, чтобы это хорошо сработало.
Функция class_getClassVariable() не имеет смысла, так как в объекте C нет такой вещи, как переменная класса
Думаю, что переменные класса поддерживаются временем исполнения, а не языком.