按日期排序查询

时间:2015-09-19 21:06:45

标签: ios swift nspredicate cloudkit

我有CloudKit中的项目列表。我得到的数据很好,但是想按日期对tableview项进行排序。

具体来说,我希望仅显示日期等于或大于今天日期的项目now)。

TableViewController

override func viewDidLoad() {
    super.viewDidLoad()

    let now = NSDate()

    let container = CKContainer.defaultContainer()
    let publicData = container.publicCloudDatabase

    let query = CKQuery(recordType: "Play", predicate: NSPredicate(format: "TRUEPREDICATE", argumentArray: nil))
    publicData.performQuery(query, inZoneWithID: nil) { results, error in
        if error == nil { // There is no error
            for play in results! {
                let newPlay = Play()

                newPlay.color = play["Color"] as! String
                newPlay.datetime = playoffs["DateTime"] as! AnyObject

                self.objects.append(newPlay)

                dispatch_async(dispatch_get_main_queue(), { () -> Void in
                    self.tableView.reloadData()
            })
            }
        }
        else {
            print(error)
        }
    }
}

非常感谢任何帮助,谢谢!

修改

已添加:let predicate = NSPredicate(format: "DateTime > %@", now)

替换为let query = CKQuery(recordType: "Play", predicate: NSPredicate(format: "TRUEPREDICATE", argumentArray: nil)) let query = CKQuery(recordType: "Play", predicate: predicate)

这有意义吗?

编辑2

这就是现在的样子:

    let sort = NSSortDescriptor(key: "DateTime", ascending: true)

    let query = CKQuery(recordType: "Play", predicate: predicate)
    query.sortDescriptors = [sort]
    publicData.performQuery(query, inZoneWithID: nil) { results, error in

看起来不错吗?

0 个答案:

没有答案