如何通过CloudKit中的creationDate查询?

我想从CloudKit获取公共/私人条目的最后X分钟。

我尝试了这个效果,但失败了:

let date = NSDate(timeInterval: -60.0 * 120, sinceDate: NSDate()) let predicate = NSPredicate(format: "creationDate > %@", date) 

但是,这会得到我的数据,但我不确定是在查询所有内容还是只是查询某种上限:

  let predicate = NSPredicate(value: true) 

我希望能够查询一定的时间。 这可能没有在客户端创buildsorting逻辑?

以下是完整的代码块:

 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 } }) } 

谢谢。

发现了我自己的问题。 您需要login到CloudKit仪表板并选中此checkbox。

在这里输入图像说明

一旦被检查,你将能够按照如下查询date:

 let date = NSDate(timeInterval: -60.0 * 120, sinceDate: NSDate()) let predicate = NSPredicate(format: "creationDate > %@", date) 

以下是有关可用于CloudKit的NSPredicate的更详细的文档: https : //developer.apple.com/documentation/cloudkit/ckquery#//apple_ref/doc/uid/TP40014043-CH1-SW8