У меня есть список элементов в 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
Это выглядит правильно?
self.objects.append(newPlay)
или что-то в этом роде? - person SRMR   schedule 20.09.2015for
. - person rmaddy   schedule 20.09.2015