2016-10-12 4 views
1

CKDatabase에 이미 진행중인 항목이 있는지 확인하려면 CKQueryOperation?CloudKit 데이터베이스 작업이 진행 중인지 확인

일부 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 데이터베이스의 작업 대기열에서 작업에 대한 정보를 얻을 수있는 방법이 없습니다.

하나의 해결책은 CKDatabase add: 방법의 사용을 피하는 것입니다. 대신 자신의 OperationQueue을 만들고 CKDatabase add: 대신 데이터베이스 작업을이 큐에 추가하십시오.

그런 다음 작업 대기열에 작업이 있는지 확인할 수 있습니다.

작업을 자신의 큐에 추가하기 전에 데이터베이스 작업의 database 속성을 설정해야합니다.

관련 문제