亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

IOS 使用NSAssert()和NSParameterAssert調(diào)試程序

 更新時(shí)間:2017年06月14日 09:29:14   投稿:lqh  
這篇文章主要介紹了IOS 使用NSAssert()和NSParameterAssert調(diào)試程序的相關(guān)資料,需要的朋友可以參考下

IOS 使用NSAssert()和NSParameterAssert調(diào)試程序

NSAssert:

  NSAssert()只是一個(gè)宏,用于開發(fā)階段調(diào)試程序中的Bug,通過為NSAssert()傳遞條件表達(dá)式來斷定是否屬于Bug,滿足條件返回真值,程序繼續(xù)運(yùn)行,如果返回假值,則拋出異常,并切可以自定義異常描述。NSAssert()是這樣定義的:

#define NSAssert(condition, desc)

condition是條件表達(dá)式,值為YES或NO;desc為異常描述,通常為NSString。當(dāng)conditon為YES時(shí)程序繼續(xù)運(yùn)行,為NO時(shí),則拋出帶有desc描述的異常信息。NSAssert()可以出現(xiàn)在程序的任何一個(gè)位置。

 下面介紹NSParameterAssert

   斷言評(píng)估一個(gè)條件,如果條件為 false ,調(diào)用當(dāng)前線程的斷點(diǎn)句柄。每一個(gè)線程有它自已的斷點(diǎn)句柄,它是一個(gè) NSAsserttionHandler 類的對(duì)象。當(dāng)被調(diào)用時(shí),斷言句柄打印一個(gè)錯(cuò)誤信息,該條信息中包含了方法名、類名或函數(shù)名。然后,它就拋出一個(gè) 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.

  這個(gè)宏用于確認(rèn)一個(gè) Objective-C 的方法的有效性。簡(jiǎn)單提供參數(shù)作為條件就行。該宏評(píng)估這個(gè)參數(shù),如果為 false ,它就打印一個(gè)錯(cuò)誤日志信息,該信息包含了參數(shù)并且拋出一個(gè)異常。

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.

  如果定義了預(yù)處理宏 NS_BLOCK_ASSERTIONS 斷言就被禁止了。所有的斷點(diǎn)宏都返回 void。

Assertions are disabled if the preprocessor macro NS_BLOCK_ASSERTIONS is defined. 
All assertion macros return void.

 感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

最新評(píng)論