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
- 如何消除UITableView左侧的边距,而不会在右侧产生间隙?
- XCTestCase waitForExpectationsWithTimeout:处理程序:在未满足期望时抛出EXC_BAD_ACCESS
- 我的IOS上的Socket.io无法与websocket服务器握手
- iOS企业开发 – TestFlight
- iOS应用更新通知
- ios 7 dequeueReusableCellWithIdentifier:forIndexPath方法 – 是否需要registerClass方法
- 在Cocos2d中,多层次的button,我怎样控制哪个button对用户的触摸做出反应?
- AFNetworking域= NSURLErrorDomain代码= -1001“请求超时”
- 修补程序内购买黑客; 卡在第四步