2013-01-14 79 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