UITableView重新加载部分顺序问题?

Pet*_*rbo 4 cocoa-touch objective-c uitableview ios

我试图理解为什么它重新加载我的部分的顺序似乎很重要 UITableView

如果我像这样重装:

// Reload section 1
[self.groupDetailsTableView reloadSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationFade];

// Reload section 0
[self.groupDetailsTableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];
Run Code Online (Sandbox Code Playgroud)

没有问题,但如果我以相反的顺序重新加载(第0部分然后第1部分),我收到一个错误:

*终止应用程序由于未捕获的异常"NSInternalInconsistencyException",原因:"无效更新:在第1行的无效数包含在现有段的行的更新后的数字(2)必须等于包含在的行数更新(1)在此之前,部分,加上或减去插入或从该部分(0插入时,0删除)和正或负的行数移入或移出该部分的删除的行号(0移动中,0搬出去).'

但是,如果我这样做,没有错误:

[self.groupDetailsTableView reloadSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 2)] withRowAnimation:UITableViewRowAnimationFade];
Run Code Online (Sandbox Code Playgroud)

iEi*_*ein 9

我认为UITableview更新存在问题; 您正在重新加载section 1表时加载表section 0.我建议你在重新加载之前和之后使用[tableview beginUpdates][tableview endUpdates]方法,问题应该消失.

如果没有,那就告诉我.希望这可以帮助.