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 对象的客户端必须手动执行此操作。
是否可以从错误代码中获取本地化描述?
例子: 当应用尝试在离线 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 对象的客户端必须手动执行此操作。