2

例如

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

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

如果我使用相同的 NSError 而不将其重置为零,我会遇到任何问题吗?

通常我会说没关系,但我担心其他人会在他们打算使用另一个错误时使用另一个错误。

4

2 回答 2

2

没有问题,但是在传递与参数相同的指针之前检查错误。如果 something 方法有错误,而 somethingElse 也有错误,error 变量将有一个指向第二个的指针。认为您将指针传递给指向对象的指针。

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 回答