2013-01-17 19 views
2

例如NSError是否可重用?

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

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

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

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

+0

在示例代码中,两个代码块的范围不会不同,例如'error'会引用不同的指针? –

+0

在这种形式下,您将在最后一条if语句中获得“使用未声明的标识符:错误”。 – erkanyildiz

回答

0

我不认为你会有问题。您的NSError变量只会被分配。

2

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

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

if (error) { 
//... 
} 

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