Xcode 中 NSAssert 的用法

2021-07-07 07:43:16 字數 735 閱讀 7606

關於 xcode 中 nsassert() 的用法 ,以及 assert() 與 ndebug

assert(e) 是 c 語言裡面的 巨集 , 這個 巨集的 定義 是 限制在 ndebug 條件 下的 ;

在沒有定義 ndebug 巨集的時候 會替換成 一行 三位運算子表示式 e? 0 : printf ( 檔案,行號,方法名); abort();

如果定義了 ndebug巨集 ,assert(e) 就會被替換成 一行 沒有實際意義的 字元 比如 空格,或者 空函式。

沒有定義 ndebug 的情況下,如果 e 為 0 ,就會 呼叫 後面的 兩行函式,輸出 當前 ** 資訊,並 執行 abort 終止 程序。

ndebug 這個 巨集 是為了 區分發布 和 測試 環境的 ,任何人都不希望 在 release 版本中 還 有 assert() 來 搗亂 。 發布時 把 這個ndebug 定義一下 就可以 了,也不用 一行一行的去刪除 assert()。

將沒有任何**可以執行。 系統 會 根據 系統設定 決定後續的操作,比如生成 該程式對應的 coredump 檔案(也就是 崩潰日誌)。

到具體的 出問題的 code 。

定義了乙個巨集 ns_block_assertions ,這個 巨集 跟 c 裡面的 ndebug 異曲同工)

成if (!(condition))

具體執行的操作就是 列印出 檔名 ,函式名 ,行號 , 然後 丟擲 異常nsinternalinconsistencyexception.

NSAssert巨集的記錄

nsassert巨集的定義如下,具體看官方文件 define nsassert condition,desc,nsassert是ios裡的乙個巨集定義,通常用來除錯,condition是條件表示式,值為yes或no desc為異常描述,通常為nsstring。當conditon為yes時程式繼續執行...

NSAssert斷言的使用

nsassert斷言的使用,即可以使用nsassert進行變數等的異常判斷,在開發環境中避免 異常,造成在真機中使用時造成閃退。作用相當於對變數使用條件語句進行有效判斷。使用nsassert斷言時,如果非真時,在模擬器會停止繼續執行,且跳轉到異常 處 而在真機中則不會。nsassert self.f...

NSAssert斷言的簡單使用

斷言 保證某乙個條件一定滿足,如果不滿足,就崩潰,並且列印自定義的崩潰資訊。用法 1 引數1 條件表示式,yes 程式繼續執行 no 應用崩潰並列印2 引數2 自定義的崩潰資訊,通常為nsstring,控制台會列印 3 nsassert condition,desc,示例 1 urlstring為n...