如何在iOS中获取NSError消息?

Mon*_*mar 29 objective-c nserror ios

我在我的视图控制器中有这个方法,如下所示:

- (void)parser:(PaymentTermsLibxmlParser *)parser encounteredError:(NSError *)error
{
    NSLog("error occured");
}
Run Code Online (Sandbox Code Playgroud)

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

jtb*_*des 45

通常,您需要使用它[error localizedDescription]来向用户显示文本.

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

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


小智 30

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


Ale*_*one 5

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

NSString *message = [NSString stringWithFormat:@"%s\n%@\n%@", __PRETTY_FUNCTION__, displayRegion, [error localizedDescription], [error localizedFailureReason]];
Run Code Online (Sandbox Code Playgroud)

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

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

NSString *message = [NSString stringWithFormat:@"%s\n%@\n%@\n%@", __PRETTY_FUNCTION__, displayRegion, [error localizedDescription], [error localizedFailureReason], [error localizedRecoverySuggestion]];
Run Code Online (Sandbox Code Playgroud)