这个宏有什么问题吗?
#define mySynthesize(op) @synthesize op = _op;
不是打字,而是
@synthesize someVar=_someVar;
@synthesize otherVar=_otherVar;
因此,我可以做的
mySynthesize (someVar);
“好吧”,但它不起作用。我做错了什么?
#define mySynthesize(op) @synthesize op = _op;
So rather than typing
@synthesize someVar=_someVar;
@synthesize otherVar=_otherVar;
I can just do
mySynthesize (someVar);
Well, it doesn't work though. What did I do wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当您在
op
前面添加下划线时,预处理器会将其视为不同的标记,因此不会被替换。您需要使用##
将下划线连接到前面,以便首先进行替换。When you prefix the
op
with an underscore, the preprocessor treats it as a different token, so it doesn't get replaced. You need to use##
to concatenate the underscore to the front so that the replacement occurs first.