我在我的视图控制器中有以下所示的方法:
- (void)parser:(PaymentTermsLibxmlParser *)parser encounteredError:(NSError *)error
{
NSLog("error occured");
}
我需要在我的提示框中显示NSError中实际的错误信息,有人能建议如何获取吗?
我在我的视图控制器中有以下所示的方法:
- (void)parser:(PaymentTermsLibxmlParser *)parser encounteredError:(NSError *)error
{
NSLog("error occured");
}
我需要在我的提示框中显示NSError中实际的错误信息,有人能建议如何获取吗?
通常你会想要使用[error localizedDescription]
来获取展示给用户的文本。
查看NSError文档以获取更多选项。
在开发时进行简单日志记录,可以使用NSLog(@"Error: %@", error)
。(这将在Xcode的日志中提供'localizedDescription'和其他所有内容。)
要仅获取错误信息,请使用:
NSString *msg = [error localizedDescription];
但是如果需要记录更多的细节,可以使用%@
格式,例如:
NSLog(@"Error: %@", error);
除了当前的答案,您还可以获取失败消息和失败原因。为此,当遇到NSError时,您可以执行以下操作:
NSString *message = [NSString stringWithFormat:@"%s\n%@\n%@", __PRETTY_FUNCTION__, displayRegion, [error localizedDescription], [error localizedFailureReason]];
这将创建一个三行字符串,包括发生错误的方法名称、错误描述和解释错误的句子。
如果在NSError中提供了更多信息,您也可以获取localizedRecoverySuggestion,并将其添加到消息中,如下所示:
NSString *message = [NSString stringWithFormat:@"%s\n%@\n%@\n%@", __PRETTY_FUNCTION__, displayRegion, [error localizedDescription], [error localizedFailureReason], [error localizedRecoverySuggestion]];
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;
}