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];