NSAssert()只是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug,满足条件返回真值,程序继续运行,如果返回假值,则抛出异常,并切可以自定义异常描述。NSAssert()是这样定义的:
#define NSAssert(condition, desc)
condition是条件表达式,值为YES或NO;desc为异常描述,通常为NSString。当conditon为YES时程序继续运行,为NO时,则抛出带有desc描述的异常信息。NSAssert()可以出现在程序的任何一个位置。
例如
NSAssert(2>=4.4, @"2>=4.4 is false!");
在debug模式下运行,会终止程序,并抛出如下异常:
2015-10-24 21:55:40.866 模仿新闻UI[958:44304] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '2>=4.4 is false!'
在release模式下运行,不终止程序不抛出异常。
这样方便调试程序。