重载数据上的UITableView行不一致错误

时间:2012-07-03 21:46:13

标签: ios uitableview

所以我在子视图中删除对象,当我将导航堆栈备份到父表视图并重新加载数据时,我收到错误

  

无效更新:第4节中的行数无效   更新(58)后必须包含在现有部分中的行   等于之前该部分中包含的行数   更新(59),加上或减去插入或删除的行数   该部分(0插入,0删除)和加号或减号的数量   移入或移出该部分的行(0移入,0移出)。

所以行数58是正确的,但是我如何解决这个错误,因为我实际上并没有删除此视图中的项目或行,而是删除子视图中的数据。在重新加载之前,我没有物理删除任何行。此父视图实际上并不知道子视图正在执行的操作,只是获取了重新加载方法中所有更改的新数据源。数据库在子视图中删除了项目,并且在父控制器的tableviews中重新加载显示了这个新的更新项目计数。我是否必须计算自上次更新以来减少了多少行,并以某种方式减少并将某些行设置为已删除的属性?

当我调用表的reloadData方法时,我可以忽略一致性检查吗?

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    if (section==recentPhotosCellIndex) {  
       return [arrayOfPosts count] 
    }
    else
       return 1;
}

2 个答案:

答案 0 :(得分:0)

您使用什么作为数据源?你确定你也要从那里删除它吗?请注意,表示删除了0行。检查是否要从视图和数据源中删除它。

答案 1 :(得分:0)

你有没有硬编码你的部分/行?