我有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
看起来不错吗?