开发ios程序时调试的好帮手---NSAssert()函数。而且和NSLog()函数一样简单易用,代码如下: NSAssert(x!=0,@"x must not be zero");
在表达式“x!=0”不成立时,程序就会抛出异常,并显示自定义的消息"x must not be zero",并同时显示出错的文件、代码和调用函数等信息,是一个程序追踪的很好手段。
假设x!=0,不满足要求就提示reason-x must not be zero
assert 是C里面的宏。用于断言。
NSAssert 只能在Objective-c里面使用。是assert的一个扩充。能捕获assert类异常及打印一些
可读的日志。而assert只是让app crash(abort).
参考 : nsassert-vs-assert-which-do-you-use-and-when
The basic difference between an NSAssert and a regular assert is that an NSAssertraises an exception when it fails while an assert just crashes the app. NSAssert also lets you supply fancier error messages and logs them. Practically, I really don't think there's much difference between the two--I can't think of a reason to handle an exception thrown by an assertion. (To split hairs, I think NSAssert usually involves less typing because you don't have to includeassert.h, but that's neither here nor there.)
如果希望在debug是assert(NSAssert)生效。而在release时assert(NSAssert) 不工作。
做下面的设置既可。
debug 和 release 的切换。Xcode -> Product -> Edit Scheme
在工具栏中选择模拟器的地方选择edit scheme即可调出该对话框。发现通过更改下面这个,并不起作用。那位同学谁知道在
bulid setting 里面的设置。麻烦告诉我下 :)