Сортировать запрос по дате

У меня есть список элементов в 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

Это выглядит правильно?


person SRMR    schedule 19.09.2015    source источник
comment
Измените предикат, чтобы он возвращал только нужные записи.   -  person rmaddy    schedule 20.09.2015
comment
См.: stackoverflow.com/questions /26521999/   -  person Tillson    schedule 20.09.2015
comment
@rmaddy имеет ли для вас смысл то, что я обновил в своем EDIT? Похоже, это работает для меня, но я не знаю, делаю ли я это неправильно, и оно сломается позже или что-то в этом роде. Спасибо!   -  person SRMR    schedule 20.09.2015
comment
@Tillson спасибо! Я думаю, это помогло мне, то, что я отредактировал, выглядит правильно для вас?   -  person SRMR    schedule 20.09.2015
comment
@rmaddy удаляет объекты, которые не старше сегодняшней даты; но он не сортирует объекты старше сегодняшней даты по их датам. Это та часть, на которой я застрял.   -  person SRMR    schedule 20.09.2015
comment
У @Tillson есть ссылки на то, как сортировать объекты старше сегодняшней даты по их датам? У меня есть часть, где пока отображаются только объекты, превышающие сегодняшнюю дату.   -  person SRMR    schedule 20.09.2015
comment
Отсортируйте массив по дате после того, как у вас есть все записи.   -  person rmaddy    schedule 20.09.2015
comment
@rmaddy Правильно ли выглядит то, что я добавил в EDIT2, или мне нужно выполнить сортировку позже, например, после self.objects.append(newPlay) или что-то в этом роде?   -  person SRMR    schedule 20.09.2015
comment
Вам нужно выполнить сортировку и перезагрузить таблицу после завершения цикла for.   -  person rmaddy    schedule 20.09.2015
comment
Значит, то, что я там выложил, принесет мне неприятности? Потому что это сработало, но я, очевидно, не знаю, какие странные ошибки скрываются за углом с тем, как/где я это поместил. Я предполагаю, что код для сортировки, о котором вы говорите, представляет собой другой вкладыш, вы знаете, что это будет? И затем, как только я получил эту строку сортировки, мне нужно убедиться, что сортировка и перезагрузка выполняются за пределами скобок цикла for?   -  person SRMR    schedule 20.09.2015