NSError是否可重用?

时间:2013-01-17 16:10:07

标签: ios

e.g。

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

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

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

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

2 个答案:

答案 0 :(得分:2)

没有问题,但要在传递相同的指针作为参数之前检查错误。如果something方法有错误并且somethingElse也是,那么错误变量将有一个指向第二个的指针。认为你传递一个指向对象指针的指针。

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

if (error) {
//...
}

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

答案 1 :(得分:0)

我认为你不会遇到问题。您的NSError变量只会被调整。

相关问题