繁体   English   中英

快速点击删除后的单元格滞后

[英]Cell lags after tapping delete in swift

所以我做了一个用CoreData对象填充的表格视图。 单元格本身具有标题的自定义类和其他两个按钮。 但是删除方法是经典的苹果类型:

 func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]?

无论如何,所有单元格都很好地加载了,我可以对其进行排序,更改其值等,但是,当我向左滑动后点击删除时,该单元格保持固定在滑动位置,并且在控制台上出现此错误:

“ CoreData:错误:严重的应用程序错误。在调用-controllerDidChangeContent时,从NSFetchedResultsController的委托中捕获到异常。无效的更新:第0部分中的行数无效。更新后现有部分中包含的行数( 8)必须等于更新(8)之前该节中包含的行数,加上或减去从该节中插入或删除的行数(已插入0,已删除1),再加上或减去移动的行数进入或退出该部分(移入0,移出0)。其中,userInfo(空)

之后,我无法对该单元执行任何操作。 但是有趣的是,单元格本身和CoreData对象被删除,因为如果我将视图从表视图控制器更改为主视图,再更改为表视图,则该单元格将不再存在。 起初我以为我只需要给

     tableView.reloadData()     

方法,但是没有用。 请注意,这不会导致崩溃,但是如果我再次点击删除按钮,无疑会崩溃,因为对象已被成功删除。

这里有什么想法吗?

用户界面与核心数据是分开的。 核心数据是持久层,您希望显示的数据已在UI中镜像。

您正在删除核心数据中的数据,但没有正确更新UI。

如果您使用的是NSFetchedResultsController则委托方法中将出现错误。 使用调试器和断点找出为什么您没有从UI中正确删除行。

如果您未使用NSFetchedResultsController则您对删除的表视图的通知不正确。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM