NSURLConnection返回只有英语作为语言的NSError?

如果我打开我的iPad上的飞行模式,并试图使NSURLConnection我会得到一个错误“互联网连接似乎是脱机。 如果我更改为任何其他语言,那么我的iPad上的英文将仍然有相同的错误文本。 我不应该在当前select的语言中得到错误吗?

使用这个代码:

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { NSLog(@"Error: %@",[error localizedDescription]); } 

我find了我的问题的答案,因为它涉及到这个问题,我分享它,这样如果别人需要它可以帮助。

包含错误代码和本地化描述的文件位于/System/Library/Frameworks/Foundation.Framework/Resources/en.lproj/FoundationErrors.strings复制此文件并粘贴到其他位置(以避免搞乱原始文件)。 现在在terminal运行命令将二进制文件转换为文本文件: plutil -convert xml1 FoundationErrors.strings现在将文件拖到您的Xcode项目,并右键单击并selectOpen as... Property list 。 现在你有钥匙和描述。 你可以翻译(如果你所需要的语言在本地化中不可用)或者自定义它们,并保存所需的名字Persian.strings在我的情况。

现在将此代码添加到您要使用它的方法:

 //persian error messages file full path NSString * persianErrorsListFile = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"Persian.strings"]; //Load file as dictionary NSDictionary * persianErrorsList = [[NSDictionary alloc] initWithContentsOfFile:persianErrorsListFile]; NSString *errorKey = [NSString stringWithFormat:@"Err%ld", (long)errorCode]; NSString *errorMessage = persianErrorsList[errorKey];