我只使用一个viewController来添加任务然后显示它。我使用NSFetchedResultsController从coreData获取。我也在使用NSSortDescriptor根据优先级对任务进行排序。
现在问题就出现了,我按了一个' +'按钮和带键盘的textview出现。我写了一个任务,然后按添加。通过这样做,我将对象保存在coreData中。在后面有一个更新的tableview,但顺序不正确。例如,如果第一项任务是“任务1”和“任务1”。然后第二个任务说任务2','任务2'出现在任务1'的顶部,但是当我重新启动应用程序时,task2显示在task1下面应该是什么。
当您添加许多具有不同优先级的任务时,会优先考虑优先级排序,但订单遍布该优先级内的所有位置。重新启动应用程序会修复它。
我希望tableview能够正确更新。我究竟做错了什么?以下是一些代码段:
添加数据时插入新行。
func controllerWillChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
tableView.beginUpdates()
}
func controller(_ controller: NSFetchedResultsController<NSFetchRequestResult>, didChange anObject: Any, at indexPath: IndexPath?, for type: NSFetchedResultsChangeType, newIndexPath: IndexPath?) {
switch type {
case .delete:
tableView.deleteRows(at: [indexPath!], with: .fade)
case .insert:
tableView.insertRows(at: [newIndexPath as! IndexPath], with: UITableViewRowAnimation.automatic)
default:
return
}
}
func controllerDidChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
tableView.endUpdates()
}
注意&#39;低7&#39;是在蓝色优先区域,但不在低6&#39;低。当我重新启动应用程序时它就到了那里
在第二张照片中,中等6,7,8以上。重新启动应用程序将使他们处于中等5。