IOSはNSAsssert()とNSParameterAsssertを使ってプログラムを調整します。
1920 ワード
IOSはNSAsssert()とNSParameterAsssertを使ってプログラムを調整します。
NSAsssert:
NSAsssert()はマクロのみであり、段階調整プログラムのBugを開発するために、NSAsssert()伝達条件表現のためにBugに属するかどうかを判定し、条件を満たして真の値に戻り、プログラムは継続して実行し、偽の値を返したら異常を投げ、カスタムの異常記述ができる。NSAsssert()は、このように定義されている。
NSParameterAsssertを紹介します。
条件がfalseであれば、現在のスレッドのブレークポイントハンドルを呼び出すと断言します。各スレッドには独自のブレークポイントハンドルがあり、NSAssestionHandler類のオブジェクトです。呼び出し時には、ハンドルがエラー情報を印刷すると断言します。この情報には、メソッド名、クラス名、または関数名が含まれています。そして、NSInternal InconsistencyExceptionの異常を持ち出しました。
NSAsssert:
NSAsssert()はマクロのみであり、段階調整プログラムのBugを開発するために、NSAsssert()伝達条件表現のためにBugに属するかどうかを判定し、条件を満たして真の値に戻り、プログラムは継続して実行し、偽の値を返したら異常を投げ、カスタムの異常記述ができる。NSAsssert()は、このように定義されている。
#define NSAssert(condition, desc)
conditionは条件式で、値はYESかNOです。descは異常な記述であり、通常はNSStringである。conditonがYESの場合はプログラムは継続して実行し、NOの場合はdescで記述された異常情報をスローします。NSAsssert()は、プログラムの任意の位置に現れることができる。NSParameterAsssertを紹介します。
条件がfalseであれば、現在のスレッドのブレークポイントハンドルを呼び出すと断言します。各スレッドには独自のブレークポイントハンドルがあり、NSAssestionHandler類のオブジェクトです。呼び出し時には、ハンドルがエラー情報を印刷すると断言します。この情報には、メソッド名、クラス名、または関数名が含まれています。そして、NSInternal InconsistencyExceptionの異常を持ち出しました。
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_ASSERT IONSは禁止されたと言い切る。すべてのブレークポイントは、宏大がvoidに戻ります。
Assertions are disabled if the preprocessor macro NS_BLOCK_ASSERTIONS is defined.
All assertion macros return void.
読んでくれてありがとうございます。みなさんのご協力をお願いします。ありがとうございます。