[英]How to query by creationDate in CloudKit?
我想從 CloudKit 獲取最后 X 分鍾的公共/私人條目。
我嘗試了這種效果但失敗了:
let date = NSDate(timeInterval: -60.0 * 120, sinceDate: NSDate())
let predicate = NSPredicate(format: "creationDate > %@", date)
但這將為我提供數據,但我不確定我是在查詢所有內容還是只是查詢某種上限:
let predicate = NSPredicate(value: true)
我希望能夠在一定時間內進行查詢。 這可能不做客戶端的創建排序邏輯嗎?
這是完整的代碼塊:
func fetchPublicData(completion: ((records:[AnyObject]) -> Void)!)
{
let date = NSDate(timeInterval: -60.0 * 120, sinceDate: NSDate())
let predicate = NSPredicate(format: "creationDate > %@", date)
let query = CKQuery(recordType: "MyDataRecordType", predicate: predicate)
let container = CKContainer.defaultContainer()
let publicDb = container.publicCloudDatabase
publicDb.performQuery(query, inZoneWithID: nil,
{
(results, error) in
if error != nil
{
self.handleError(error)
}
else
{
// do stuff
}
})
}
謝謝。
2020 年 5 月 10 日更新:
發現了我自己的問題。 您需要登錄到 CloudKit 儀表板,轉到架構並確保“索引類型”設置為可查詢。
以下是 CloudKit 可以使用哪種 NSPredicate 的更詳細文檔: https : //developer.apple.com/documentation/cloudkit/ckquery#//apple_ref/doc/uid/TP40014043-CH1-SW8
設置完成后,您將能夠按日期查詢,如下所示:
let date = NSDate(timeInterval: -60.0 * 120, sinceDate: NSDate())
let predicate = NSPredicate(format: "creationDate > %@", date)
[已棄用] 下面第一個接受的答案的 CloudKit 儀表板屏幕截圖:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.