Имам списък с елементи в 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