NSError: Get localizedDescription from code

NSError: Get localizedDescription from code

是否可以从错误代码中获取本地化描述?

例子: 当应用尝试在离线 NSURLSession 中连接时 returns 错误:

Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline."

是否可以使用域和代码获取 "The Internet connection appears to be offline." 描述?像下面这样的东西(它实际上不起作用):

let error = NSError(domain: "NSURLErrorDomain", code: -1009)
print(error.localizedDescription)

这仅在用户信息字典中设置了 NSLocalizedDescriptionKey 时有效。显然,它不是来自 NSURLSession 的 NSError 对象,因此默认字符串是由域和代码构造的。有关详细信息,请参阅 NSError documentation

如果您想本地化向用户显示的错误消息,您将必须检查错误类型的错误代码并显示适当本地化的字符串。有关使用本地化的更多详细信息,请参阅 Localizing Your App


编辑:

再次阅读你的问题我想我误解了你的问题。

如果你想用域和错误代码初始化一个 NSError 对象,并让它包含某个 错误消息 对应于 NSURLSession 使用的错误代码答案是 没有.

特定的错误代码不是全球公认的标准,没有什么可以阻止其他应用程序使用相同的代码。

也就是说,NSError 不会根据特定的错误代码自动填充 message 字段。使用 NSError 对象的客户端必须手动执行此操作。