Is there a simple way of throwing the exception generated by an NSAssert
when the condition is false? To draw a parallel of what I'm asking for: In C stdlib a failed assert results in a printf()
and abort()
. And in Java, a failed assert results in a java.lang.AssertionError
. In ObjectiveC a failed assert seems to result in (copied from NSException.h):
[[NSAssertionHandler currentHandler] handleFailureInMethod:_cmd
object:self file:[NSString stringWithUTF8String:__FILE__]
lineNumber:__LINE__ description:(desc), ##__VA_ARGS__];
The best equivalent I can think of is either putting the above block in a macro I define (let's call it NSFail()
), or using NSAssert(NO, ...)
. The NSFail
macro is a little undesirable since it seems like I'm defining something that essentially already exists. The NSAssert(NO,...)
option is undesirable because I don't want the code disabled when NS_BLOCK_ASSERTIONS
is defined.