【问题标题】: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