내 ckquery가 사용자가 만든 레코드를 가져 오지 않는 이유를 모르겠습니다. 여기 내 코드는 다음과 같습니다Cloudkit의 사용자 ID를 기반으로 쿼리 할 수 없습니다.
@IBAction func browseMyComplaints(sender: AnyObject) {
// who am i?
CKContainer.defaultContainer().fetchUserRecordIDWithCompletionHandler({ userRecordID, error in
if error == nil {
println(userRecordID.description)
let query:CKQuery = CKQuery(recordType: "myComplaint", predicate: NSPredicate(format: "creatorUserRecordID = %@", userRecordID))
var results : [CKRecord] = [CKRecord]()
var operation : CKQueryOperation = CKQueryOperation(query: query)
operation.recordFetchedBlock = { (record:CKRecord!) -> Void in
results.append(record)
}
operation.queryCompletionBlock = {
(cursor:CKQueryCursor!, error:NSError!) in
if (error != nil) {
NSLog(error.description)
} else {
NSLog("no query error reported")
NSLog(String(results.count) + " found")
tvComplaintRecords = results
self.performSegueWithIdentifier("complaintList", sender: self)
}
}
publicDatabase.addOperation(operation)
} else {
println("Can not identify user due to error: \(error.localizedDescription)")
}
})
}
내 출력은 다음과 같습니다
<CKRecordID: 0x7be3f220; _46761404769b094e82053fea39b16bb5:(_defaultZone:__defaultOwner__)>
2014-10-11 12:45:32.597 ReportAMenace[15244:781048] no query error reported
2014-10-11 12:45:32.597 ReportAMenace[15244:781048] 0 found
그러나 11 개 레코드가가, 내가 위의 쿼리를 실행하기 직전에 만든 그 일을 포함한다. 어떤 힌트?
아, 전에도 비슷한 문제가있었습니다. 사과가 기본적으로 모든 메타 데이터 필드를 검색 및 정렬 가능하게 만들었 으면합니다. 또는 CloudKit에 코드를 추가하여 기능을 추가 할 수 있습니다. –
동의합니다. 오래된 기록은 결코 나타나지 않았다. 이미 대용량 데이터 세트를 보유하고 있고 추가 개발을 위해 플래그를 켜야하는 경우 이는 매우 나쁠 것입니다. – Narwhal