#define mySynthesize(op) @synthesize op = _op;
Так что вместо того, чтобы печатать
@synthesize someVar=_someVar; @synthesize otherVar=_otherVar;
Я могу просто сделать
mySynthesize (someVar);
Ну, это не работает, хотя. Что я сделал не так?
Когда вы префикс op ставите с подчеркиванием, препроцессор обрабатывает его как другой токен, поэтому он не заменяется. Вам нужно использовать ##, чтобы объединить подчеркивание вперед, чтобы замена произошла первой.
op
##
#define mySynthesize(op) @synthesize op = _ ## op