Aim
- 我想显示
CKError
用户在应用程序中遇到的情况作为警报。
- 所以我想从错误中提取可以显示给用户的字符串。
Note:这个问题与要显示的 UI 代码无关。只是想从错误中提取有意义的字符串。
我尝试使用 localizedDescription 但它似乎不包含适当的字符串
Code:
以下是我所做的尝试:
po error
<CKError 0x1c464cea0: "Network Unavailable" (3/NSURLErrorDomain:-1009); "The Internet connection appears to be offline.">
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<String>
- some : "<CKError 0x1c064eaf0: \"Network Unavailable\" (3/NSURLErrorDomain:-1009); \"The Internet connection appears to be offline.\">"
问题:
调试描述似乎最接近我想要的。
- 我错过了什么吗?
- 提取可以向用户显示的错误字符串的正确方法是什么?
看起来错误 UserInfo[NSUnderlyingError] 中还有另一个错误。尝试从该错误中获取 localizedDescription。
那么,那就是:
((error as? CKError)?.errorUserInfo[NSUnderlyingErrorKey] as? NSError)?.localizedDescription
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)