オンラインで見つけたコードを参照すると、エラーが発生します。エラーは、エラーがなかったことを意味する空のオブジェクトとして返されます。
チェックすると、オブジェクトが空であるためにアクセスerror.code
が悪くなります。
をチェックすると、は空のオブジェクトであるためerror == nil
、falseが返されます。error
ロジックを使用して、エラーは存在するが空であることを確認するにはどうすればよいですか?
オンラインで見つけたコードを参照すると、エラーが発生します。エラーは、エラーがなかったことを意味する空のオブジェクトとして返されます。
チェックすると、オブジェクトが空であるためにアクセスerror.code
が悪くなります。
をチェックすると、は空のオブジェクトであるためerror == nil
、falseが返されます。error
ロジックを使用して、エラーは存在するが空であることを確認するにはどうすればよいですか?
エラーは通常、そのタイプNSError
またはそのサブクラスです。これらは、次のように宣言されたメソッドの参照として渡されます。
-(void)DoSomeStuff:(NSError **)error;
したがって、への参照を渡す必要があるメソッドを呼び出す場合は、次のNSError
ように呼び出します。
NSError *error = nil;
[self DoSomeStuff:&error];
このメソッドが作業を終了したら、エラーオブジェクトが実際に何かで埋められているかどうかを確認します。
if(error)
{
//Do some stuff if there is an error.
//To see the human readable description you can:
NSLog(@"The error was: %@", [error localizedDescription]);
//To see the error code you do:
NSLog(@"The error code: %d", error.code);
}
else //There is no error you proceed as normal
{
//Do some other stuff - no error
}
PSエラーが発生せず、メソッドが期待どおりに動作しない場合は、このメソッドの実装に問題があります。特にそれがオープンソースのものである場合、コーディングの間違いが簡単に現れる可能性があるので、メソッドが何をするのかを見て、デバッグし、何かが間違っている場合は修正することさえできます...