NSAssert实现

时间:2014-07-12 12:35:58

标签: objective-c macros

我打开了NSAssert的片段,发现了这个:

do {                \
    __PRAGMA_PUSH_NO_EXTRA_ARG_WARNINGS \
    if (!(condition)) {     \
         [[NSAssertionHandler currentHandler] handleFailureInMethod:_cmd \
         object:self file:[NSString stringWithUTF8String:__FILE__] \
         lineNumber:__LINE__ description:(desc), ##__VA_ARGS__]; \
      }             \
    __PRAGMA_POP_NO_EXTRA_ARG_WARNINGS \
} while(0)

为什么使用while(0)?它总是会进行一次。

0 个答案:

没有答案