CKError localizedDescription
目标
- 我想在应用程序中向用户显示遇到的
CKError
作为警报。 - 所以我想从可以显示给用户的错误中提取字符串。
注意:此问题与要显示的UI代码无关。 只想从错误中提取有意义的字符串。
我尝试使用localizedDescription但它似乎没有包含适当的字符串
码:
以下是我的尝试:
po error po error.localizedDescription "The operation couldn't be completed. (CKErrorDomain error 3.)" po (error as! CKError).errorUserInfo ▿ 2 elements ▿ 0 : 2 elements - key : "NSUnderlyingError" - value : Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo={NSErrorFailingURLStringKey=https:/ ▿ 1 : 2 elements - key : "NSDebugDescription" - value : NSURLErrorDomain: -1009 po (error as? NSError)?.localizedFailureReason nil po (error as? NSError)?.localizedRecoverySuggestion nil po (error as? NSError)?.localizedRecoveryOptions nil po (error as? NSError)?.debugDescription ▿ Optional - some : ""
问题:
调试描述似乎最接近我想要的。
- 我错过了什么吗?
- 提取我可以向用户显示的错误字符串的正确方法是什么?
看起来errorUserInfo [NSUnderlyingError]中有另一个错误。 尝试从该错误中获取localizedDescription。
那么,那将是:
((error as? CKError)?.errorUserInfo[NSUnderlyingErrorKey] as? NSError)?.localizedDescription
error.localizedDescription
实际上是您必须使用错误本身。
您的应用程序可以通过检查错误代码并向用户提供自己的消息来提供更好的错误消息(更加用户友好,本地化等)。
(error as? NSError)?.code
- 在Swift中的Realm.io数据库中交换两个对象
- animationUIView框架,子视图UIScrollView并不总是animation
- setNeedsDisplayInMapRect不会触发新的drawMapRect:call
- SERIST 1.5 —表演,新窗口小部件,评分,快速操作,Spotlight搜索等…
- iOS – 与通用链接的错误
- iOS swift:使用coredata(cloudkit)存储caching
- 如何将UIView渲染成CGContext
- 如何将NSString转换为UIImage的appengine blobstore
- 仅显示两列,使用故事板在CollectionView中显示多行