NSError是否可重用?
问题描述:
NSError *error = nil;
if ([something error:&error]) {
// ...
}
// ...
if ([somethingElse error:&error]) {
// ...
}
我会遇到任何问题,如果我使用相同的NSError而不重置为零?
通常我会说这没关系,但我担心别人会在使用其他人时使用一个错误。
答
我不认为你会有问题。您的NSError
变量只会被分配。
答
没有问题,但在传递与参数相同的指针前检查错误。如果某些方法有错误并且也有错误,那么错误变量将有一个指向第二个错误的指针。认为你传递一个指向一个对象的指针。
NSError *error = nil;
if ([something error:&error]) {
// ...
}
if (error) {
//...
}
if ([somethingElse error:&error]) {
// ...
}
在示例代码中,两个代码块的范围不会不同,例如'error'会引用不同的指针? –
在这种形式下,您将在最后一条if语句中获得“使用未声明的标识符:错误”。 – erkanyildiz