这个宏有什么问题?

时间:2011-09-19 14:45:58

标签: objective-c xcode macros

#define mySynthesize(op) @synthesize op = _op;

所以而不是打字

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

我可以做到

mySynthesize (someVar);

嗯,但它不起作用。我做错了什么?

1 个答案:

答案 0 :(得分:10)

当您在op前加下划线时,预处理器会将其视为不同的令牌,因此不会被替换。您需要使用##将下划线连接到前面,以便首先进行替换。

#define mySynthesize(op) @synthesize op = _ ## op