【问题标题】:ios test macro errors "Expected identefier"ios测试宏错误“预期标识符”
【发布时间】:2013-01-14 10:20:56
【问题描述】:

我正在尝试创建一个简单的测试宏,但在以下几行中出现错误。你们中的任何人都知道为什么或如何解决它们吗?

#define test(condition) do{\
    if (condition)
    {\        //// <-----Expected identifier or (
        NSlog @"passed: " %@ #condtion); \

    }
    else
    {\
        NSLog(@"failed: " @ #condition); \

    }
}   //// <-----extraneous closing brace ( "}")

【问题讨论】:

    标签: iphone ios testing ipa


    【解决方案1】:

    您需要在多行宏的每一行末尾添加一个反斜杠(最后一行除外)。

    #define test(condition) do{\
        if (condition) \
        {\
            NSlog @"passed: " %@ #condtion); \
        } \
        else \
        { \
            NSLog(@"failed: " @ #condition); \
        } \
    }
    

    【讨论】:

      【解决方案2】:

      你可以简化很多。这里:

      #define test(condition) NSLog("%s: %s\n", condition ? "Passed" : "Failed", #condition);
      

      调用方式:

      int i = 6;
      test(i > 8);
      test(i < 8);
      

      输出:

      Failed: i > 8
      Passed: i < 8
      

      【讨论】:

        猜你喜欢
        • 2017-06-25
        • 1970-01-01
        • 2022-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多