我正在尝试理解为什么重新加载 UITableView
的部分数据时,它们的顺序似乎很重要。
如果我像这样重新加载:
// Reload section 1
[self.groupDetailsTableView reloadSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationFade];
// Reload section 0
[self.groupDetailsTableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];
没有问题,但是如果我按相反的顺序重新加载(先加载第0节,然后加载第1节),就会出现错误:
* 因无法捕获的异常而终止应用程序'NSInternalInconsistencyException',原因:'无效更新:部分1中的行数无效。 更新后现有部分中包含的行数(2)必须等于更新前该部分中包含的行数(1)加上或减去从该部分中插入或删除的行数(0插入、0删除)以及加上或减去移入或移出该部分的行数(0移入、0移出)。
但是,如果我像这样做,就不会出错:
[self.groupDetailsTableView reloadSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 2)] withRowAnimation:UITableViewRowAnimationFade];
reloadSections
。或者在进行操作时逐行插入和删除。 - Rob