Objective c 如何跨多个方法冒泡错误对象?
这更像是一个C问题,但问题来了 我有一个方法,它接收指向NSError对象的指针的地址作为参数。现在,该方法被深埋在类层次结构的几个层次中,我需要使错误对象一直冒泡到顶部 我可以在每个方法上返回error对象,但我更愿意使用Cocoa方法,并在将error对象作为参数传递时返回布尔值 我该怎么做 我可以在每个方法上返回error对象,但我更愿意使用Cocoa方法,并在将error对象作为参数传递时返回布尔值 Cocoa方式是布尔直接返回,通过引用(即通过指针)返回错误值,如下所示:Objective c 如何跨多个方法冒泡错误对象?,objective-c,cocoa,pointers,nserror,Objective C,Cocoa,Pointers,Nserror,这更像是一个C问题,但问题来了 我有一个方法,它接收指向NSError对象的指针的地址作为参数。现在,该方法被深埋在类层次结构的几个层次中,我需要使错误对象一直冒泡到顶部 我可以在每个方法上返回error对象,但我更愿意使用Cocoa方法,并在将error对象作为参数传递时返回布尔值 我该怎么做 我可以在每个方法上返回error对象,但我更愿意使用Cocoa方法,并在将error对象作为参数传递时返回布尔值 Cocoa方式是布尔直接返回,通过引用(即通过指针)返回错误值,如下所示: NSErro
NSError *error = nil;
if ([foo trySomething:bar error:&error]) {
//Success!
} else {
//Failure!
}
(或者,trySomething:error:
可能返回一个对象,在这种情况下,您将该对象视为布尔返回:non-nil
为真/成功,nil
为假/失败。)
要使此方法可链接,每个方法(最外面的方法除外)都应该有一个错误指针参数,并在其实现中使用该参数:
- (void) trySomething:(MyBar *)bar error:(out NSError **)outError
if ([bartender restock:bar error:outError]) {
//Success!
} else {
//Failure!
}
}
您可以将这两种方法结合起来,在您自己的局部变量中捕获错误对象,以便在失败情况下对其进行自定义或包装,然后将自定义/包装错误存储在错误返回指针处,供调用方接收
我可以在每个方法上返回error对象,但我更愿意使用Cocoa方法,并在将error对象作为参数传递时返回布尔值
Cocoa方式是布尔直接返回,通过引用(即通过指针)返回错误值,如下所示:
NSError *error = nil;
if ([foo trySomething:bar error:&error]) {
//Success!
} else {
//Failure!
}
(或者,trySomething:error:
可能返回一个对象,在这种情况下,您将该对象视为布尔返回:non-nil
为真/成功,nil
为假/失败。)
要使此方法可链接,每个方法(最外面的方法除外)都应该有一个错误指针参数,并在其实现中使用该参数:
- (void) trySomething:(MyBar *)bar error:(out NSError **)outError
if ([bartender restock:bar error:outError]) {
//Success!
} else {
//Failure!
}
}
您可以将这两种方法结合起来,在您自己的局部变量中捕获错误对象,以便在失败情况下对其进行自定义或包装,然后将自定义/包装错误存储在错误返回指针处,供调用方接收