我不明白爲什麼我的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條記錄,包括:1,我做之前,我跑上面的查詢。任何提示?
啊,我之前也有類似的問題。我希望蘋果會默認所有元數據字段都可搜索和排序。或者向CloudKit添加功能,以通過代碼實現。 – 2014-10-13 05:42:00
我同意。舊的記錄從來沒有出現過。如果你已經有了一個大型的數據集並且需要打開這個標誌來進行額外的開發,這將會非常糟糕。 – Narwhal 2014-10-14 18:32:12