開發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引用。