Что не так с этим макросом? - PullRequest
2 голосов
/ 19 сентября 2011
#define mySynthesize(op) @synthesize op = _op;

Так что вместо того, чтобы печатать

@synthesize someVar=_someVar;
@synthesize otherVar=_otherVar;

Я могу просто сделать

mySynthesize (someVar);

Ну, это не работает, хотя. Что я сделал не так?

1 Ответ

10 голосов
/ 19 сентября 2011

Когда вы префикс op ставите с подчеркиванием, препроцессор обрабатывает его как другой токен, поэтому он не заменяется. Вам нужно использовать ##, чтобы объединить подчеркивание вперед, чтобы замена произошла первой.

#define mySynthesize(op) @synthesize op = _ ## op
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...