CKQueryOperation可见性,取消和超时可能性

时间:2015-09-24 20:55:04

标签: ios swift icloud cloudkit

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

一旦我将CKQueryOperation添加到CKDatabase,这是关于我的控件停止的位置。

我有办法吗?

  1. 查看特定于CKDatabase的所有待处理操作。
  2. 将操作添加到CKDatabase后取消操作?
  3. 设置完成超时,以便在网络阻止完成时操作不会保持挂起状态?
  4. 我知道我可以使用CKDatabase performQuery执行此操作但是如果可能的话我更愿意使用操作,提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

对于超时,您可以在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秒。