斷言

本文將簡單的介紹ios中的幾種斷言方式

1. assert

assert只是一個宏,用于開發(fā)階段調(diào)試程序中的bug,通過為assert()來傳遞表達式來判斷是否屬于bug,滿足條件返回真值程序繼續(xù)運行,如果返回假則拋出異常,但是assert僅僅只是簡單的拋出異常終止程序。

2. NSAssert

NSAssert也僅僅是一個宏,條件判斷與assert相同,不同的是可以自定義異常的描述,在條件返回假時會提示錯誤信息并打印出來。
例如:

- (void)testAssert {
  int a = 0;
  NSAssert(a, @"a的值不能為0");
  NSLog(@"程序正常運行了");
}

當程序執(zhí)行時運行到斷言處會crash并在控制臺會提示上述自定義的報錯信息。

3. NSParameterAssert/NSCparameterAssert

NSParameterAssert是適用于Objective-C的方法,NSCparameterAssert是適用于C的函數(shù)

4. NSAssert與NSParameterAssert的區(qū)別

先來看看NSParameterAssert的定義:

#define NSParameterAssert(condition) NSAssert((condition), @"Invalid parameter not satisfying: %@", @#condition)

從定義中不難看到NSParameterAssert是對NSAssert的重新定義在某種意義上來說他兩是等價的,具體的區(qū)別未完待續(xù)。。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容