ios - 调用 deleteRowsAtIndexPaths 时 UITableView 断言失败

标签 ios swift uitableview

我有两个 TableView ,我可以在按下按钮时将数据从 table1 移动到 table2。

当单元格被选中时,会出现一个复选标记,然后按下按钮,会发生以下情况:

  • 从数组数据源中移除对象
  • 调用deleteRowsAtIndexPaths

我的问题是,当数据传输到 table2 时,数据在 table2 单元格上仍然有复选标记。我想重置它,但在每个地方我都尝试迭代对象数组并将复选标记设置为 false,当调用 deleteRowsAtIndexPaths 时会发生以下错误:

Assertion failure in -[UITableView _endCellAnimationsWithContext:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3491.2.5/UITableView.m:1717

有人知道为什么会这样吗?

最佳答案

在通知 View 任何更改之前更新数据源至关重要。 View 方法假定您的数据源包含当前正确的数据。否则, TableView 可能会从您的数据源接收到错误的项目集,或者请求不存在的项目并导致您的应用程序崩溃。

尝试按以下顺序进行:

  • 将表 A 中的对象复制到新项目中(属性未选中)
  • 从表A的数组数据源中移除对象
  • 为表 A 调用 deleteRowsAtIndexPaths
  • 将步骤1复制的对象插入表B的数据源
  • 重新加载表B

还提供将项目插入表 B 的代码可能会有所帮助。

祝你好运。

关于ios - 调用 deleteRowsAtIndexPaths 时 UITableView 断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31903484/

相关文章:

ios - Firebase 电子邮件验证不验证帐户

swift - 如何使用应用程序委托(delegate)以编程方式控制启动图像?

iphone - 将单元格的重新排序属性设置为 NO

ios - 哪个选项更好?直接将 subview 添加到单元格或单元格内容 View 中?

iphone - uitableview 单元格中的自定义删除按钮不起作用

ios - 如何使用单独的 Storyboard以编程方式正确设置 UITabBarController

ios - 将背景色设置为RGB UIColor ButtonTypeRoundedRect

iphone - 从 iOS 应用程序向隐藏的收件人发送电子邮件

ios - 未加载来自 segue 的 UIPickerView 项目

ios - Swift 2.0 API 调用