0

所以我正在删除子视图中的对象,当我将导航堆栈返回到父表视图并重新加载数据时,我得到了错误

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

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

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

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

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

2 回答 2

0

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

于 2012-07-03T22:03:28.503 回答
0

您还没有硬编码您的部分/行吗?

于 2012-07-03T22:13:10.543 回答