ios - CKQueryOperation 可见性、取消和超时可能性

标签 ios swift icloud cloudkit

我的应用程序需要使用 CKDatabase 运行 CKQueryOperation。这需要并不总是可用的网络访问。

一旦我向 CKDatabase 添加了一个 CKQueryOperation,这就是我的控制停止的地方。

有什么办法可以:

  1. 查看特定于 CKDatabase 的所有未决操作。
  2. 将操作添加到 CKDatabase 后取消操作?
  3. 设置完成超时,以便在网络阻止完成时操作不会保持挂起状态?

我知道我可以使用 CKDatabase performQuery 来做到这一点,但是如果可能的话我更愿意使用操作,在此先感谢您的帮助!

最佳答案

对于超时,您可以在 CKQueryOperation 上设置配置对象:

let config = CKOperation.Configuration()
config.timeoutIntervalForRequest = 5
config.timeoutIntervalForResource = 5

// Config operation
let operation = CKQueryOperation(query: query)
operation.configuration = config
operation.other_stuff..
operation.queryCompletionBlock = { (_, error: Error?) in
        guard error == nil else {
            // Handle timeout error here.
            return
        }
        ...
 }

默认超时为 60 秒。

关于ios - CKQueryOperation 可见性、取消和超时可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32770742/

相关文章:

html - 某些 html 标签未显示在任何 iPad safari 浏览器(safari 或 Chrome 应用程序)中

ios - CoreTelephony eSIM 功能无法在设备上运行

ios - 间歇性问题设置 UISwitch

iOS swift : Image from label in TabBarItem

ios - 带有导入 UTI 的文件在 UIDocumentPickerViewController 中显示为灰色

ios - icloud 复制得到一个错误 Domain=NSCocoaErrorDomain Code=512

ios - 如何判断 iOS 用户在最初启用 iCloud 日历后是否禁用了它

ios - 用一些数据初始化一个 UIView 服装类?

ios - Cocoapods - 在使用最新版本后使用旧版本的 pod

ios - 核心数据从一对多集合中删除对象不保存