在查看之前删除模型

时间:2013-12-27 14:14:45

标签: iphone objective-c uitableview

如果我有这组代码:

[self.categoriesAndNuggets removeObjectAtIndex: indexPath.row];
[tableView deleteRowsAtIndexPaths: indexToRemove withRowAnimation: UITableViewRowAnimationFade];

该程序运行正常。

但如果我换行,

[tableView deleteRowsAtIndexPaths: indexToRemove withRowAnimation: UITableViewRowAnimationFade];
[self.categoriesAndNuggets removeObjectAtIndex: indexPath.row];

一切都会中断,第二行永远不会被调用。

很高兴在必要时提供更多代码。

编辑:我的问题是为什么程序会以这种方式运行

2 个答案:

答案 0 :(得分:1)

错误通常是

  

“更新后现有部分中包含的行数   必须等于之前该部分中包含的行数   更新,加上或减去添加或删除的行数   那部分。“

这意味着您的数据源应该在重新加载之前反映表格的变化 在你的第一个例子中,你做了:

  1. 删除数据源中的元素
  2. 重新加载表格,减去一个元素
  3. 在第二个中,你却反其道而行之。

答案 1 :(得分:0)

因为-deletionRowAnimation方法将调用tableView视图委托方法,该方法负责返回UITableViewCell和返回方法的行数

因此,如果您在删除项目之前重新加载tableView它将导致崩溃