如何通过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
- 带有OR返回错误的NSPredicate
- 将图像作为CKAsset存储在CloudKit中,图像颠倒
- 在生产环境中使用数据集debugging应用程序的任何方式?
- 设备脱机时CKQueryOperation不返回错误
- 如何在创build新logging时使用CloudKit在没有延迟的情况下更新TableView中的数据
- CloudKit在不同的iCloud帐户之间共享数据,但不与所有人共享
- 在CloudKit中查询引用的最佳方法是什么?
- 保存CloudKitlogging“未经身份validation”(9/1002)“”此请求需要经过身份validation的帐户“”
- 查询CloudKit中的视频数组,下载并存储在Documents目录中-iOS的Swift 3教程