2013-01-14 59 views
0

我想创建一个简单的测试宏,但我在下面的行中有错误。你们中的任何人都知道我为什么或者如何修复它们?ios测试宏错误“预期identefier”

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

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

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

回答

2

您需要在您的多行宏的每一行(除了最后一个)的最后一个反斜杠。

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

你可以简化一下。在这里:

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

调用,比如:

​​

输出:

Failed: i > 8 
Passed: i < 8