Ios 如何从NSError获取更多有用的信息?
我想从Ios 如何从NSError获取更多有用的信息?,ios,nserror,Ios,Nserror,我想从NSError获取一些有用的信息。 如果我打印出[error userInfo],我会得到以下信息: { NSFilePath = "/Users/apple/Library/Application Support/iPhone Simulator/5.1/Applications/08260B6A-4D65-48DF-ADD1-FFC8750081E8/Documents/abc"; NSUnderlyingError = "Error Domain=NSPOSIXErr
NSError
获取一些有用的信息。
如果我打印出[error userInfo]
,我会得到以下信息:
{
NSFilePath = "/Users/apple/Library/Application Support/iPhone Simulator/5.1/Applications/08260B6A-4D65-48DF-ADD1-FFC8750081E8/Documents/abc";
NSUnderlyingError = "Error Domain=NSPOSIXErrorDomain Code=17 \"The operation couldn\U2019t be completed. File exists\"";
}
我想显示最后一行:“文件存在”,但我如何才能选择它
我试过:
localizedDescription
localizedFailureReason
localizedRecoverySuggestion
localizedRecoveryOptions
recoveryAttempter
其中没有一个显示“文件存在”。如何:
NSDictionary *userInfo = [error userInfo];
NSString *error = [userInfo objectForKey:@"NSUnderlyingError"];
NSLog(@"The error is: %@", error);
如果查找,它有一个User info dictionary keys
部分,该部分有一个定义为NSUnderlyingErrorKey的常量(它还包含键的说明)
最后,我按照代码进行完美的N错误打印。 感谢@jbat100和@Peter Warbo,我在他们的代码中添加了一点:
NSDictionary *userInfo = [error userInfo];
NSString *errorString = [[userInfo objectForKey:NSUnderlyingErrorKey] localizedDescription];
本地化建议非常有用。 您可以从中获取JSON字符串:
NSString *JSON = [[error userInfo] valueForKey:NSLocalizedRecoverySuggestionErrorKey] ;
NSError *aerror = nil;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData: [JSON dataUsingEncoding:NSUTF8StringEncoding]
options: NSJSONReadingMutableContainers
error: &aerror];
是的,它按下:“错误域=NSPOSIXErrorDomain Code=17\”操作无法完成。文件存在\“但是,我可以只选择“操作无法完成。文件存在”吗?如果([错误代码]==17)NSLog(“操作无法完成。文件存在”),
代码>更简洁:error.userInfo[NSUnderlyingErrorKey].localizedDescription代码>
NSString *JSON = [[error userInfo] valueForKey:NSLocalizedRecoverySuggestionErrorKey] ;
NSError *aerror = nil;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData: [JSON dataUsingEncoding:NSUTF8StringEncoding]
options: NSJSONReadingMutableContainers
error: &aerror];