如何从uitableview底部的核心数据中获取过去的日期?

我有一个表格视图,该表格视图按日期升序对核心数据进行排序,我想将已经过去的日期放在表格视图的底部。

override func viewWillAppear(_ animated: Bool) {
    let fetchRequest: NSFetchRequest<Reminder> = Reminder.fetchRequest()
    let sort = NSSortDescriptor(key: #keyPath(Reminder.date),ascending: true)
    fetchRequest.sortDescriptors = [sort]
    let reminders = try! PersistenceController.context.fetch(fetchRequest)
    self.remindersArray = reminders
    self.tableView.reloadData()
}

override func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell",for: indexPath) as? MainTableViewCell
    cell!.titleLabel.text = remindersArray[indexPath.row].title
    cell!.dateLabel.text = DateAssist.DateToString(remindersArray[indexPath.row].date!)
    cell!.timeLabel.text = DateAssist.TimeToString(remindersArray[indexPath.row].date!)
    //        }
    return cell!
}
bv5gj 回答:如何从uitableview底部的核心数据中获取过去的日期?

如果数据集不大,一种可能的解决方法是在获取后对数组进行排序,而不是使用排序描述符。

在您的提醒类中添加以下功能

extension Reminder {
    func isAfter(_ date: Date) -> Bool {
        return self.date > date
    }
}

然后对数组进行排序

    let self.remindersArray = reminders.sorted(by: { 
        let now = Date()
        if $0.isAfter(now) == $1.isAfter(now) {
            return $0.date < $1.date
        }
        return $0.isAfter(now) 
    })
本文链接:https://www.f2er.com/3169610.html

大家都在问