如何检查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)
答案 0 :(得分:1)
不幸的是,无法获取有关Cloud Kit数据库操作队列上的操作的信息。
一种解决方案是避免使用CKDatabase add:
方法。而是创建自己的OperationQueue
并将数据库操作添加到此队列,而不是使用CKDatabase add:
。
然后你可以检查你的操作队列中是否有任何操作。
在将操作添加到您自己的队列之前,请确保设置数据库操作的database
属性。