代码之家  ›  专栏  ›  技术社区  ›  Sandro Meier

NSLog中的预处理器错误

  •  0
  • Sandro Meier  · 技术社区  · 14 年前

    BlaBlaBla_prefix.pch 我定义如下:

    #import "SMDeviceManager.h"
    #define DeviceSpecificResourceName(name) [SMDeviceManager deviceSpecificResourceName:(name)];
    

    应为“)”before“;”标记。

    但是如果我将输出保存在一个变量中,而不是直接在NSLog中调用函数,它就可以工作了。

    NSString *test = DeviceSpecificResourceName(@"eintest.png");
    NSLog(@"%@", test);
    

    这将记录预期值。但从另一方面来说,它在编译时失败了。我做错什么了?你能帮帮我吗?

    1 回复  |  直到 8 年前
        1
  •  5
  •   kennytm    14 年前
    #define DeviceSpecificResourceName(name) [SMDeviceManager deviceSpecificResourceName:(name)];
    //                                                                                          ^ remove
    

    删除最后的分号。


    如果你保持 ; ,声明 NSLog(@"%@", DeviceSpecificResourceName(@"eintest.png"))

    NSLog(@"%@", [SMDeviceManager deviceSpecificResourceName:(@"eintest.png")];);
    //                                                                        ^
    

    当然是语法错误。