只删除其中一个后,UITableView的所有项目都会消失

时间:2012-12-10 16:02:18

标签: iphone ios uitableview

看起来很简单,但我无法找到我做错的事。我有一个带有部分的表格视图,我可以删除1个项目,但是当我尝试删除多个项目时,所有项目都从表格中消失。

重要的是要提一下,如果我只删除1行,那么该方案效果很好。删除一行不会影响UITableView的项目。

单击编辑按钮时,每行都可以删除。代码是

[self.tableView setEditing:YES animated:YES];

当我删除一行时,代码会调用:

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

    NSMutableArray *itemsOfGroup = [[table1 getItems] retain];
    int section = indexPath.section;
    section = section - 1;


    MyItem *deleteItem = (MyItem*)[[[sections objectAtIndex:section] objectForKey:@"SectionEntries"] objectAtIndex:indexPath.row];
    [itemsOfGroup removeObject:deleteItem];

    [table1 setItems:[itemsOfGroup autorelease]];
    [[[sections objectAtIndex:section] objectForKey:@"SectionEntries"] removeObjectAtIndex:indexPath.row];

    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject: indexPath] withRowAnimation:UITableViewRowAnimationRight];  
    [self createSections];
    [self.tableView reloadData];
}

我的记忆力有问题吗? (我想一旦NSArray类出现消息“发送到解除分配的实例的消息”

重要的是要提到我的项目实际上并未从数据源中删除。它们只从表格视图中消失。

1 个答案:

答案 0 :(得分:0)

为什么在将表1中的项目设置为它时自动释放itemsOfGroup?应该是设置后的释放调用,或者更好地使用具有属性的self ...机制。在此处检查您的内存分配/删除。你丢弃了所有的内容吗?此外,删除后,你的numberOfRowsInSection:和numberOfSections是什么:返回?检查那些。