assert 是C里面的宏。用于断言。
NSAssert 类似于NSLog(),方便易用。但她只能在Objective-c里面使用。是assert的一个扩充。能捕获assert类异常及打印一些可读的日志。而assert只是让app crash(abort)。
NSAssert(断言)是指在开发期间使用的、让程序在运行时进行自检的代码。断言为真,则表明程序运行正常,而断言为假,则意味着它已经在代码中发现了意料之外的错误。断言对于大型的复杂程序或可靠性要求极高的程序来说尤其有用。
NSAssert是foundation.framework中定义的一个宏:#define NSAssert(condition, desc, ...)第一个参数为一个条件判断,如果为假,则抛出异常,显示第二个参数所描述的信息。
比如:程序中会使用NSAssert(param.count==3,@"传入的参数不符合预期"); 以在debug模式下,校验数组param传入的参数个数是否正确,如果不正确则会打印日志:"传入的参数不符合预期",方便我们调试程序。
在release模式下运行,不终止程序不抛出异常,这样做很方便调试程序。当在真机中时,会自动忽略。调试cocoa程序在程序出错时,不会马上停止。使用宏NSAssert可以让程序出错时马上抛出异常。在debug情况下,所有NSAssert都会被执行。在release下不希望NSAssert被执行,我们通常在release种将断言设置成禁用。设置方法:在targets种选择build,选择release。
关于Xcode开发模式中的release与debug模式,请参考如下链接: http://my.oschina.net/leejan97/blog/296920