当前位置:  开发笔记 > 编程语言 > 正文

处理CloudKit错误和CKError

如何解决《处理CloudKit错误和CKError》经验,为你挑选了1个好方法。

这似乎是元素,但我似乎无法找到导致我正确的方向.

在我的应用程序中,我有这个代码来访问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属性,以便我可以优雅地处理重试?

对不起,如果这似乎是元素,但我肯定没有发现任何解释它.



1> beyowulf..:

您应该检查NSError的userInfo字典.

    if let retryAfterValue = error.userInfo[CKErrorRetryAfterKey] as? NSTimeInterval {
        let retryAfterDate = NSDate(timeIntervalSinceNow: retryAfterValue)
        // ...
    }

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有