例えば
NSError *error = nil;
if ([something error:&error]) {
// ...
}
// ...
if ([somethingElse error:&error]) {
// ...
}
nil にリセットせずに同じ NSError を使用すると、何か問題が発生しますか?
通常は問題ないと思いますが、他の誰かが一方のエラーを使用するつもりだったときに、他方のエラーを使用するのではないかと心配しています。
例えば
NSError *error = nil;
if ([something error:&error]) {
// ...
}
// ...
if ([somethingElse error:&error]) {
// ...
}
nil にリセットせずに同じ NSError を使用すると、何か問題が発生しますか?
通常は問題ないと思いますが、他の誰かが一方のエラーを使用するつもりだったときに、他方のエラーを使用するのではないかと心配しています。
問題はありませんが、同じポインタを引数として渡す前にエラーをチェックしてください。something メソッドにエラーがあり、somethingElse にもエラーがある場合、エラー変数には 2 番目のメソッドへのポインターが含まれます。オブジェクトへのポインターへのポインターを渡すと考えてください。
NSError *error = nil;
if ([something error:&error]) {
// ...
}
if (error) {
//...
}
if ([somethingElse error:&error]) {
// ...
}
問題はないと思います。変数NSError
は再割り当てのみされます。