如何在iOS中获取NSError消息?

时间:2010-08-10 07:23:59

标签: ios objective-c nserror

我在视图控制器中使用该方法,如下所示:

- (void)parser:(PaymentTermsLibxmlParser *)parser encounteredError:(NSError *)error
{
    NSLog("error occured");
}

在这里,我需要在警报的NSError中显示实际错误消息,任何人都可以建议如何获取它。

4 个答案:

答案 0 :(得分:45)

通常,您需要使用[error localizedDescription]来向用户显示文字。

阅读NSError文档以获取更多选项。

对于开发时的简单日志记录,您可以执行NSLog(@"Error: %@", error)。 (这将为您提供'localizedDescription'以及Xcode日志中的所有其他内容。)

答案 1 :(得分:25)

使用[error localizedDescription]显示错误消息

答案 2 :(得分:4)

要添加到当前答案,您可以获取失败消息和失败原因。为此,您可以在出现NSError时执行此操作:

NSString *message = [NSString stringWithFormat:@"%s\n%@\n%@", __PRETTY_FUNCTION__, displayRegion, [error localizedDescription], [error localizedFailureReason]];

这将创建一个3行字符串,其中包含发生错误的方法的名称,错误的描述以及解释错误的句子。

如果在NSError中提供了更多信息,您也可以获取localizedRecoverySuggestion并将其添加到消息中,如下所示:

NSString *message = [NSString stringWithFormat:@"%s\n%@\n%@\n%@", __PRETTY_FUNCTION__, displayRegion, [error localizedDescription], [error localizedFailureReason], [error localizedRecoverySuggestion]];

答案 3 :(得分:1)

用户error.userInfo,它返回字典ex:

 NSLog(@"%@",error.userInfo);
{
code = 101;
error = "invalid login parameters";
originalError = "Error Domain=NSURLErrorDomain Code=-1011 \"The operation        couldn\U2019t be completed. (NSURLErrorDomain error -1011.)\"";
temporary = 0;
}