我想从CloudKit获取最后十分钟的公共/私人条目.
我尝试了一些这样的效果,但失败了:
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,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 } }) }
谢谢.
解决方法
发现自己的问题
您需要登录CloudKit仪表板,并勾选此复选框.
您需要登录CloudKit仪表板,并勾选此复选框.
一旦检查,您将能够按日期查询:
let date = NSDate(timeInterval: -60.0 * 120,sinceDate: NSDate()) let predicate = nspredicate(format: "creationDate > %@",date)
以下是可以用于CloudKit的nspredicate类型的更详细的文档:
https://developer.apple.com/library/prerelease/ios/documentation/CloudKit/Reference/CKQuery_class/index.html#//apple_ref/doc/uid/TP40014043-CH1-SW8