是否有一种简单的方法可以NSAssert
在条件为假时抛出由 an 生成的异常?画出我所要求的平行线:在 C 标准库中,一个失败的断言导致 a printf()
and abort()
。在 Java 中,失败的断言会导致java.lang.AssertionError
. 在 ObjectiveC 中,一个失败的断言似乎会导致(从 NSException.h 复制):
[[NSAssertionHandler currentHandler] handleFailureInMethod:_cmd
object:self file:[NSString stringWithUTF8String:__FILE__]
lineNumber:__LINE__ description:(desc), ##__VA_ARGS__];
我能想到的最好的等价物是将上面的块放在我定义的宏中(我们称之为NSFail()
),或者使用NSAssert(NO, ...)
. 这个NSFail
宏有点不受欢迎,因为我似乎在定义一些本质上已经存在的东西。该NSAssert(NO,...)
选项是不可取的,因为我不希望在NS_BLOCK_ASSERTIONS
定义时禁用代码。