NSError:从代码

时间:2016-10-11 13:10:22

标签: ios swift cocoa nserror cfnetwork

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

〔实施例: 当应用程序尝试在脱机状态下连接NSURLSession时返回错误:

  

错误域= NSURLErrorDomain代码= -1009“Internet连接   似乎处于离线状态。“

是否可以获得“Internet连接似乎处于脱机状态”。使用域名和代码的描述?像下面这样的东西(它确实不起作用):

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

1 个答案:

答案 0 :(得分:2)

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

如果要本地化显示用户的错误消息,则必须检查错误类型的错误代码并显示相应的本地化字符串。有关使用本地化的详细信息,请参阅Localizing Your App

修改

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

如果要使用域和错误代码初始化NSError对象,并使其包含与NSURLSession使用的错误代码对应的某个错误消息,则答案为

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

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