标签:
苹果在foundation.framework中定义了这么一个宏:
#define NSAssert(condition, desc, ...)
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模式下运行,会终止程序,并抛出如下异常:
2016-06-14 09:24:16.618 TestAssertion[825:c07] *** Terminating app due to uncaught exception ‘NSInternalInconsistencyException‘, reason: ‘2>=4.4 is false!‘
2016-06-14 13:58:25.132 DemoForXIB[13512:1550607] *** Assertion failure in -[ViewController click:], /Users/mac/Desktop/DemoForXIB/DemoForXIB/ViewController.m:123
在release模式下运行,不终止程序不抛出异常。
这样方便调试程序。
NSAssert的使用
标签:
原文地址:http://www.cnblogs.com/yujinzhong/p/5583923.html