11

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

Мне интересно, что class_getClassVariable делает в противовес class_getInstanceVariable, и почему нет class_setClassVariable во время выполнения.

ответ

13

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

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

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

1

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^