在BlaBlaBla_prefix.pch
中,我定义了以下内容:
#import "SMDeviceManager.h"
#define DeviceSpecificResourceName(name) [SMDeviceManager deviceSpecificResourceName:(name)];
但是如果我知道在我的代码中使用这个函数在一个NSog() - 调用中,我在编译时遇到以下错误:
预期“)”之前“;”令牌。
但是如果我将输出保存在变量中,而不是直接调用NSLog中的函数,它就可以工作。
NSString *test = DeviceSpecificResourceName(@"eintest.png");
NSLog(@"%@", test);
这会记录预期值。 B但另一方面它在编译时失败了。我究竟做错了什么?你能帮我吗?
答案 0 :(得分:5)
#define DeviceSpecificResourceName(name) [SMDeviceManager deviceSpecificResourceName:(name)];
// ^ remove
删除最后一个分号。
如果您保留;
,则语句NSLog(@"%@", DeviceSpecificResourceName(@"eintest.png"))
将替换为
NSLog(@"%@", [SMDeviceManager deviceSpecificResourceName:(@"eintest.png")];);
// ^
当然是语法错误。