2

例えば

NSError *error = nil;
if ([something error:&error]) {
   // ...
}    
// ...

if ([somethingElse error:&error]) {
  // ...
}

nil にリセットせずに同じ NSError を使用すると、何か問題が発生しますか?

通常は問題ないと思いますが、他の誰かが一方のエラーを使用するつもりだったときに、他方のエラーを使用するのではないかと心配しています。

4

2 に答える 2

2

問題はありませんが、同じポインタを引数として渡す前にエラーをチェックしてください。something メソッドにエラーがあり、somethingElse にもエラーがある場合、エラー変数には 2 番目のメソッドへのポインターが含まれます。オブジェクトへのポインターへのポインターを渡すと考えてください。

NSError *error = nil;
if ([something error:&error]) {
   // ...
}    

if (error) {
//...
}

if ([somethingElse error:&error]) {
  // ...
}
于 2013-01-17T16:36:48.303 に答える
0

問題はないと思います。変数NSErrorは再割り当てのみされます。

于 2013-01-17T16:18:55.233 に答える