Что делает class_getClassVariable (), делают?

Если бы переменные экземпляра принадлежат экземпляру класса, переменные класса принадлежали бы экземпляру метакласса, я должен думать. Но мой опыт с метаклассом Objective C говорит мне, что это маловероятно.

Я задаюсь вопросом что class_getClassVariable делает в противоположность class_getInstanceVariable, и почему нет a class_setClassVariable во времени выполнения.

11
задан Jonathan Sterling 30 December 2009 в 15:21
поделиться

2 ответа

Я нашел обсуждение этого здесь: http://lists.apple.com/archives/objc-language/2008/Feb/msg00021.html

Нет, это невозможно. Поддержки компилятора нет и нет. поддержка выполнения; class_getClassVariable(cls, имя) просто вызывает class_getInstanceVariable(cls->isa, name).

Если бы это было возможно, то, скорее всего, это не дало бы вам новую переменную на каждый подкласс в любом случае. Метаклассы Объектива-С не являются первыми. достаточно для того, чтобы это хорошо сработало.

13
ответ дан 3 December 2019 в 08:29
поделиться

Функция class_getClassVariable() не имеет смысла, так как в объекте C нет такой вещи, как переменная класса

Думаю, что переменные класса поддерживаются временем исполнения, а не языком.

1
ответ дан 3 December 2019 в 08:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: