2016-10-12 6 views
1

CKDatabaseに既に進行中のものがあるかどうかを確認するにはCKQueryOperationCloudKitデータベース操作が実行中であることの確認

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

残念ながら、Cloud Kitデータベースの操作キューの操作に関する情報を取得する方法はありません。

解決策の1つは、CKDatabase add:メソッドの使用を避けることです。代わりに、自分でOperationQueueを作成し、CKDatabase add:の代わりにこのキューにデータベース操作を追加します。

次に、操作キューに操作が含まれているかどうかを確認できます。

操作を独自のキューに追加する前に、データベース操作のdatabaseプロパティを設定していることを確認してください。

関連する問題