当表数据更新时,UITableview reloadRowsAtIndexPaths崩溃

时间:2013-07-14 10:56:43

标签: ios uitableview crash

我有一个表视图,每行都有图像和一些文本。图像是asyc加载的。一旦从服务器获取图像,就会调用委托方法。委托方法包含启动图像提取的索引路径,因此我只能重新加载这些单元格。我有额外的检查,以确保一旦提取图像,数据源包含足够的数据,以便索引路径不会超出范围。尽管设置了这个条件,应用程序崩溃了。

在获取图像之前,我的表数据有可能会更新。我知道这是问题的原因,但我不知道为什么这会导致崩溃,尽管之前添加了一个检查 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];

      }

}

0 个答案:

没有答案