我有一个表格视图,每行都有图像和一些文本。图像以异步方式加载。一旦从服务器获取图像,就会调用委托方法。委托方法包含启动图像获取的索引路径,因此我只能重新加载那些单元格。我有额外的检查以确保一旦获取图像,数据源包含足够的数据,以便索引路径不会超出范围。尽管设置了这个条件,应用程序还是崩溃了。
我的表格数据有可能在获取图像之前得到更新。我知道这是问题的原因,但我不知道为什么这会导致崩溃,尽管在 reloadRowsAtIndexPaths 之前添加了检查?
错误是:
致命异常 NSInternalInconsistencyException 无效更新:第 2 节中的行数无效。更新后现有节中包含的行数 (4) 必须等于更新前该节中包含的行数 (6),加上或减去从该节插入或删除的行数(1 插入,1 删除)加上或减去移入或移出该节的行数(0 移入,0 移出)。
有人可以分享这方面的任何意见吗?
重新加载表格的代码片段
// this method will be called on main thread
- (void)loadImageAtIndexPath:(NSIndexPath *)inIndexPath {
if(inIndexPath.row < dataSource.count) {
[self.listView reloadRowsAtIndexPaths:[NSArray arrayWithObject:inIndexPath]
withRowAnimation:UITableViewRowAnimationNone];
}
}