视图控制器有一个数据模型,它不断地、积极地更新
UItableview (storyTable) 经常被调用来更新和反映迄今为止的变化。
(更改代码以仅反映单个 beginUpdates endUpdates) - 仍然崩溃
[self.storyTable beginUpdates];
if([deleteIndexPaths count]){
DLog(@"Table refresh delele rows :%@",deleteIndexPaths);
[self.storyTable deleteRowsAtIndexPaths:deleteIndexPaths withRowAnimation:UITableViewRowAnimationNone];
}
if ([addIndexPaths count]){
DLog(@"Table refresh add rows :%@",addIndexPaths);
[self.storyTable insertRowsAtIndexPaths:addIndexPaths withRowAnimation:UITableViewRowAnimationTop];
}
if ([changedIndexPaths count]){
DLog(@"Table refresh change rows :%@",changedIndexPaths);
[self.storyTable reloadRowsAtIndexPaths:changedIndexPaths withRowAnimation:UITableViewRowAnimationFade ];
}
[self.storyTable endUpdates];
//[self.storyTable endUpdates];
tableIsAnimating = NO;
}
不时崩溃并显示以下消息:(主要在 deleteRowsAtIndexPaths...)
* -[UITableView _endCellAnimationsWithContext:] 中的断言失败,/SourceCache/UIKit/UIKit-2380.17/UITableView.m:1070
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无效更新:第 0 节中的行数无效。更新后现有节中包含的行数 (20) 必须等于该节中包含的行数更新前的节 (20),加上或减去从该节插入或删除的行数(0 插入,10 删除),加上或减去移入或移出该节的行数(0 移入,0 移动出去)。'
或者 :
*由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“尝试将第 20 行插入第 0 节,但更新后第 0 节中只有 20 行”
问题:如何添加一些保护代码来防止崩溃?