NSLog 中的预处理器错误
在 BlaBlaBla_prefix.pch
中,我定义了以下内容:
#import "SMDeviceManager.h"
#define DeviceSpecificResourceName(name) [SMDeviceManager deviceSpecificResourceName:(name)];
但是,如果我知道在 NSog() 调用中的代码中使用此函数,则会在编译期间收到以下错误:
“;”之前应有“)”令牌。
但是如果我将输出保存在变量中,而不是直接调用 NSLog 中的函数,它就可以工作。
NSString *test = DeviceSpecificResourceName(@"eintest.png");
NSLog(@"%@", test);
这会记录预期值。 B 但另一方面它编译失败。我做错了什么?你能帮我吗?
In BlaBlaBla_prefix.pch
I define the following:
#import "SMDeviceManager.h"
#define DeviceSpecificResourceName(name) [SMDeviceManager deviceSpecificResourceName:(name)];
But if I know use this function in my code inside a NSog()-call, I get the following error during compilation:
Expected ")" before ";" token.
But if I save the output in a variable ,instead of directly calling the function in NSLog, it works.
NSString *test = DeviceSpecificResourceName(@"eintest.png");
NSLog(@"%@", test);
This logs the expected value. B But in the other way it fails at compiling. What am I doing wrong? Can you please help me?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
删除最后一个分号。
如果保留
;
,语句NSLog(@"%@", DeviceSpecificResourceName(@"eintest.png"))
将被替换为语法错误。
Remove the final semicolon.
If you keep the
;
, the statementNSLog(@"%@", DeviceSpecificResourceName(@"eintest.png"))
will be replaced aswhich of course is a syntax error.