何NSParameterAssert
ですか?
誰かが例を挙げて説明できますか?
何NSParameterAssert
ですか?
誰かが例を挙げて説明できますか?
回答:
これは、メソッドのパラメーターがnil
0でないかどうかをテストする簡単な方法です。したがって、基本的には、これを使用して前提条件を作成し、いくつかのパラメーターを設定する必要があることを示します。設定されていない場合、マクロによりアプリケーションが中止され、その行でエラーが生成されます。そう:
- (void)someMethod:(id)someObjectThatMustNotBeNil
{
// Make sure that someObjectThatMustNotBeNil is really not nil
NSParameterAssert( someObjectThatMustNotBeNil );
// Okay, now do things
}
前提条件は、メソッド/ APIがプログラマーによって正しく呼び出されていることを確認する簡単な方法です。プログラマーが前提条件に違反した場合、アプリケーションは早期に終了するという考え方です。できれば、デバッグと基本的なテスト中に終了します。
NSParameterAssert
ただし、任意の式がtrueと評価されることをテストするために使用できるため、次のように使用することもできます。
NSParameterAssert( index >= 0 ); // ensure no negative index is supplied
Release
構成内の現在のバージョンのテンプレート(これはかなり前に戻ります)でデフォルトで設定されます。これを制御するにはENABLE_NS_ASSERTIONS
、新しいバージョンのXcodeでビルド設定を設定するか、NS_BLOCK_ASSERTIONS
マクロを定義して1に設定します。Xcode5には、ビルド設定とデフォルトをYes
inDebug
とNo
inに設定するプロジェクト設定* Enable FoundationAssertions`があります。Release
構成。