从Array和UITableView中删除对象

时间:2011-11-29 15:57:20

标签: objective-c uitableview nsmutablearray

我有一张带有奖品清单的NSMutableArray。

有了这些,我填写了一个UITableView。

现在,我尝试使用TableView CommitEditingStyle删除其中一个奖品。并给我“无效更新:无效的节数....”错误。

我在互联网上发了很多关于“无效更新:无效的部分数量......”的帖子,但我无法让它发挥作用。

首先,我从数组中删除对象,然后更新TableView(就像所有帖子教我一样)。但仍然给我错误

我尝试将数组设置为nill并且是相同的。

是否需要刷新数组或类似的内容?

这是我的代码:

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{


if (editingStyle == UITableViewCellEditingStyleDelete)
{
    [[self myPrizesList] removeObjectAtIndex: [indexPath row]];

    [self.tableView beginUpdates];              

    // Either delete some rows within a section (leaving at least one) or the entire section.
    if ([[self myPrizesList] count] > 0)
    {
        // Section is not yet empty, so delete only the current row.
        [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
                         withRowAnimation:UITableViewRowAnimationFade];
    }
    else
    {
        // Section is now completely empty, so delete the entire section.
        [self.tableView deleteSections:[NSIndexSet indexSetWithIndex:indexPath.section] 
                 withRowAnimation:UITableViewRowAnimationFade];
    }

    [self.tableView endUpdates];
}

}

我总是说,对于5元素数组,“更新后的表视图中包含的节数(5)必须等于更新前的表视图中包含的节点数(5),加或减插入或删除的部分数量(0插入,1删除)“

如果我将数组设置为nil,则说:“更新后的表视图中包含的节数(1)必须等于更新前的表视图中包含的节数(1),加上或减去插入或删除的部分数量(0插入,1删除)“

谢谢,抱歉我的英语不好

1 个答案:

答案 0 :(得分:1)

这是删除部分的问题,你要删除最终的奖项AND部分,但是当表格重新加载时它仍然具有原始的部分数量...... 5.你如何确定要返回的部分数量?如果您删除了一个,则需要减少。