<喎?http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHAgY2xhc3M9"p1">討論 Discussion
斷言評估一個條件,如果條件為 false ,調用當前線程的斷點控制代碼。每一個線程有它自已的斷點控制代碼,它是一個 NSAsserttionHandler 類的對象。當被調用時,斷言控制代碼列印一個錯誤資訊,該條資訊中包含了方法名、類名或函數名。然後,它就拋出一個 NSInternalInconsistencyException 異常。
Assertions evaluate a condition and, if the condition evaluates to false, call the assertion handler for the current thread, passing it a format string and a variable number of arguments. Each thread has its own assertion handler, which is an object of classNSAssertionHandler. When invoked, an assertion handler prints an error message that includes method and class names (or the function name). It then raises anNSInternalInconsistencyException exception.
這個宏用於確認一個 Objective-C 的方法的有效性。簡單提供參數作為條件就行。該宏評估這個參數,如果為 false ,它就列印一個錯誤記錄檔資訊,該資訊包含了參數並且拋出一個異常。
This macro validates a parameter for an Objective-C method. Simply provide the parameter as the condition argument. The macro evaluates the parameter and, if it is false, it logs an error message that includes the parameter and then raises an exception.
如果定義了預先處理宏 NS_BLOCK_ASSERTIONS 斷言就被禁止了。所有的斷點宏都返回 void。
Assertions are disabled if the preprocessor macro NS_BLOCK_ASSERTIONS is defined. All assertion macros return void.