Objective c void函数的ObjectiveC错误处理

Objective c void函数的ObjectiveC错误处理,objective-c,error-handling,Objective C,Error Handling,我有一个函数 - (void)doSomeFunctionWithError:(NSError **)error; 如果函数确实导致错误,我应该如何检查是否发生了错误?苹果建议检查返回值是否为零,但显然我不能在这里这样做。我目前正在检查错误值是否不是零,但这似乎是不受欢迎的。造成您困惑的原因是提供此方法的人编写了错误的方法。苹果是对的:除非事先知道指针的另一端有一个N错误,否则不应该检查N错误指针的值。该方法应该返回一些告诉您这一点的信息 如果方法不返回某物或nil作为事情是否进展顺利的指示器

我有一个函数

- (void)doSomeFunctionWithError:(NSError **)error;

如果函数确实导致错误,我应该如何检查是否发生了错误?苹果建议检查返回值是否为零,但显然我不能在这里这样做。我目前正在检查错误值是否不是零,但这似乎是不受欢迎的。

造成您困惑的原因是提供此方法的人编写了错误的方法。苹果是对的:除非事先知道指针的另一端有一个N错误,否则不应该检查N错误指针的值。该方法应该返回一些告诉您这一点的信息

如果方法不返回某物或nil作为事情是否进展顺利的指示器,则正确的约定是返回BOOL,如下所示:

- (BOOL)doSomeFunctionWithError:(NSError **)error;

这样,你就有东西要检查了。例如,看看NSFileManager;它的许多方法都有这种模式(请参见示例)。

您感到困惑的原因是提供此方法的人编写的方法不正确。苹果是对的:除非事先知道指针的另一端有一个N错误,否则不应该检查N错误指针的值。该方法应该返回一些告诉您这一点的信息

如果方法不返回某物或nil作为事情是否进展顺利的指示器,则正确的约定是返回BOOL,如下所示:

- (BOOL)doSomeFunctionWithError:(NSError **)error;

这样,你就有东西要检查了。例如,看看NSFileManager;它的许多方法都有这种模式(请参见示例)。

您感到困惑的原因是提供此方法的人编写的方法不正确。苹果是对的:除非事先知道指针的另一端有一个N错误,否则不应该检查N错误指针的值。该方法应该返回一些告诉您这一点的信息

如果方法不返回某物或nil作为事情是否进展顺利的指示器,则正确的约定是返回BOOL,如下所示:

- (BOOL)doSomeFunctionWithError:(NSError **)error;

这样,你就有东西要检查了。例如,看看NSFileManager;它的许多方法都有这种模式(请参见示例)。

您感到困惑的原因是提供此方法的人编写的方法不正确。苹果是对的:除非事先知道指针的另一端有一个N错误,否则不应该检查N错误指针的值。该方法应该返回一些告诉您这一点的信息

如果方法不返回某物或nil作为事情是否进展顺利的指示器,则正确的约定是返回BOOL,如下所示:

- (BOOL)doSomeFunctionWithError:(NSError **)error;

这样,你就有东西要检查了。例如,看看NSFileManager;它的许多方法都有这种模式(参见示例)。

澄清:您是从函数内部还是外部“检查”的?你是这个函数的调用者还是实现者(作者)?如果你是调用者,作者应该返回一个BOOL,以便你知道是否发生了错误。如果你是作者,那么按照我刚才说的做;返回BOOL,而不是void,指示事情是否进展顺利。我是调用方,因此我将接受您的建议并通知作者返回BOOL值。谢谢澄清:您是从功能内部还是外部进行“检查”?你是这个函数的调用者还是实现者(作者)?如果你是调用者,作者应该返回一个BOOL,以便你知道是否发生了错误。如果你是作者,那么按照我刚才说的做;返回BOOL,而不是void,指示事情是否进展顺利。我是调用方,因此我将接受您的建议并通知作者返回BOOL值。谢谢澄清:您是从功能内部还是外部进行“检查”?你是这个函数的调用者还是实现者(作者)?如果你是调用者,作者应该返回一个BOOL,以便你知道是否发生了错误。如果你是作者,那么按照我刚才说的做;返回BOOL,而不是void,指示事情是否进展顺利。我是调用方,因此我将接受您的建议并通知作者返回BOOL值。谢谢澄清:您是从功能内部还是外部进行“检查”?你是这个函数的调用者还是实现者(作者)?如果你是调用者,作者应该返回一个BOOL,以便你知道是否发生了错误。如果你是作者,那么按照我刚才说的做;返回BOOL,而不是void,指示事情是否进展顺利。我是调用方,因此我将接受您的建议并通知作者返回BOOL值。谢谢