如果我有这组代码:
[self.categoriesAndNuggets removeObjectAtIndex: indexPath.row];
[tableView deleteRowsAtIndexPaths: indexToRemove withRowAnimation: UITableViewRowAnimationFade];
该程序运行正常。
但如果我换行,
[tableView deleteRowsAtIndexPaths: indexToRemove withRowAnimation: UITableViewRowAnimationFade];
[self.categoriesAndNuggets removeObjectAtIndex: indexPath.row];
一切都会中断,第二行永远不会被调用。
很高兴在必要时提供更多代码。
编辑:我的问题是为什么程序会以这种方式运行
答案 0 :(得分:1)
错误通常是
“更新后现有部分中包含的行数 必须等于之前该部分中包含的行数 更新,加上或减去添加或删除的行数 那部分。“
这意味着您的数据源应该在重新加载之前反映表格的变化 在你的第一个例子中,你做了:
在第二个中,你却反其道而行之。
答案 1 :(得分:0)
因为-deletionRowAnimation
方法将调用tableView视图委托方法,该方法负责返回UITableViewCell和返回方法的行数
因此,如果您在删除项目之前重新加载tableView它将导致崩溃