开发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的使用
小心使用NSAssert,可以看到它的定义中出现了一个self, 有可能在你的block中你会发现你明明没有self的strong引用,但是仍然出现了循环引用。就看看你是否使用了NSAssert,这个宏被展开之后持有了self,那么有可能就会出现引用不释放的问题。
而使用NSCassert,就不会有这样的问题了。因为它定义使用的handleFailureInFunction函数,并没有self引用。