ios – 如何通过在CloudKit中的creationDate进行查询?

我想从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仪表板,并勾选此复选框.

一旦检查,您将能够按日期查询:

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

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...