iOS 7 和 8 之间不同的 NSError 本地化描述

Posted

技术标签:

【中文标题】iOS 7 和 8 之间不同的 NSError 本地化描述【英文标题】:Different NSError localizedDescription between iOS 7 and 8 【发布时间】:2014-11-04 17:16:20 【问题描述】:

我正在测试我的应用在未连接到互联网时如何显示错误,我注意到 ios 7 和 8 针对 NSURLErrorNotConnectedToInternet (-1009) 返回不同的错误消息

iOS 7 错误

Error Domain=NSURLErrorDomain
Code=-1009 "The Internet connection appears to be offline."
UserInfo=0x17d5edc0 NSLocalizedDescription=The Internet connection appears to be offline., 
                     NSUnderlyingError=0x17ecdd20 "The Internet connection appears to be offline."

iOS 8 错误

Error Domain=NSURLErrorDomain
Code=-1009 "The operation couldn’t be completed. (NSURLErrorDomain error -1009.)"
UserInfo=0x1740f9c80 _kCFStreamErrorDomainKey=12,
                      _kCFStreamErrorCodeKey=8,
                      NSUnderlyingError=0x17405dd90 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1009.)"

有什么方法可以让 iOS 在 iOS 7 和 8 上生成相同的错误消息?

【问题讨论】:

【参考方案1】:

使用代码,是一样的。

如果他们选择在 iOS8 中更新错误信息,你将无能为力。

【讨论】:

当。我希望我不必创建自己的从错误代码到字符串的映射。【参考方案2】:

也许意图是这是一个错误,您不应该只显示带有技术原因的错误消息,而是应该考虑它对用户的意义。互联网连接可能因 WiFi 关闭或 3G 数据关闭而关闭,因此您可以根据数据的重要性要求将其打开。如果你正在做一些后台更新,你可能什么都不做。或者,如果有意义,您可能会建议用户稍后进行操作。

【讨论】:

也许,但它似乎需要做很多额外的工作,尤其是为了支持更晦涩的错误。至少可以选择显示更有意义的内置消息。【参考方案3】:

您可以使用来自http://nshipster.com/nserror/的错误代码映射

【讨论】:

以上是关于iOS 7 和 8 之间不同的 NSError 本地化描述的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap 构建 iOS 7 和 8 状态栏控件

iOS 7 和 iOS 8 中动态 UITableViewCell 的高度是不可能的

UIPopoverController 的大小调整行为在 iOS 7.0 和 iOS 7.1 之间有所不同

ios 7和ios 6之间的ios进度条高度不同

iOS 7.1 和 iOS 8 中的 viewDidAppear 之间是不是存在会影响设置变量的区别?

iOS 7 和 iOS 8 上的不同帧高度