检查CloudKit数据库操作是否正在进行

时间:2016-10-12 05:50:29

标签: cloudkit

如何检查CKDatabase是否已在进行CKQueryOperation

我想获取一些CloudKit记录,但我有可能不止一次提交请求。举例说明:

let container = CKContainer(identifier: "com.example.app")
let publicDB = container.publicCloudDatabase

// somehow determine if we have an already in progress operation here
if (inProgress) {
   return
 }

let query = CKQuery(recordType: "MyRecord", predicate: NSPredicate(value: true))
let operation CKQueryOperation(query: query)
// Omitting completion block for brevity
publicDB.add(operation)

1 个答案:

答案 0 :(得分:1)

不幸的是,无法获取有关Cloud Kit数据库操作队列上的操作的信息。

一种解决方案是避免使用CKDatabase add:方法。而是创建自己的OperationQueue并将数据库操作添加到此队列,而不是使用CKDatabase add:

然后你可以检查你的操作队列中是否有任何操作。

在将操作添加到您自己的队列之前,请确保设置数据库操作的database属性。