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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...