这似乎是元素,但我似乎无法找到导致我正确的方向.
在我的应用程序中,我有这个代码来访问CloudKit记录:
db.performQuery(query, inZoneWithID: nil) {(results, error) -> Void in if error != nil { print("performQuery error on query:\n\(error?.description)") } else { for rec in results! { // handle the record } } }
这有效,但有时我会收到错误; 例如:
我理解为什么我得到错误,但我不知道如何访问CKError对象,该对象具有我需要等待的信息并在之后重试操作 - 在这种情况下 - 1.9秒(或消息中显示的任何内容).闭包中的"错误"是NSError.
如何访问CKError记录并检索CkErrorCode和retryAfter属性,以便我可以优雅地处理重试?
对不起,如果这似乎是元素,但我肯定没有发现任何解释它.
您应该检查NSError的userInfo字典.
if let retryAfterValue = error.userInfo[CKErrorRetryAfterKey] as? NSTimeInterval { let retryAfterDate = NSDate(timeIntervalSinceNow: retryAfterValue) // ... }