Вопрос о синтаксисе @synthesize [имя свойства] - PullRequest
1 голос
/ 21 января 2011

Я просто хочу получить четкий ответ на этот вопрос, прежде чем тратить больше времени: я возиться с написанием макросов препроцессора, чтобы упростить синтез свойств Objective-C. Одна идея, которую я видел, это что-то вроде #define SYNTHESIZE(_X_) @synthesize _X_ = _##_X_, которая связывает свойство с переменной экземпляра с аналогичным именем с префиксом подчеркивания.

Пытаясь продвинуться дальше, я задаюсь вопросом: смогу ли я когда-либо вызывать вызов @synthesize с именем свойства, но получить это имя косвенно? Например, если я сделаю некоторый самоанализ класса, чтобы найти имена всех свойств через класс, можно ли передать одно из них в @synthesize, или это должно быть само фактическое имя? Если это пригодится, я компилирую с LLVM 2.0.

1 Ответ

2 голосов
/ 21 января 2011

Нет, вы не можете синтезировать во время выполнения. Это то, что вы просите - код времени выполнения, который анализирует свойства и генерирует геттеры / сеттеры. Однако @synthesize - это функция времени компиляции, и для работы она должна присутствовать в коде во время компиляции.

...