0

オンラインで見つけたコードを参照すると、エラーが発生します。エラーは、エラーがなかったことを意味する空のオブジェクトとして返されます。

チェックすると、オブジェクトが空であるためにアクセスerror.code悪くなります。

をチェックすると、は空のオブジェクトであるためerror == nilfalseが返されます。error

ロジックを使用して、エラーは存在するが空であることを確認するにはどうすればよいですか?

4

1 に答える 1

7

エラーは通常、そのタイプ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エラーが発生せず、メソッドが期待どおりに動作しない場合は、このメソッドの実装に問題があります。特にそれがオープンソースのものである場合、コーディングの間違いが簡単に現れる可能性があるので、メソッドが何をするのかを見て、デバッグし、何かが間違っている場合は修正することさえできます...

于 2012-06-04T17:30:27.150 に答える