看起来很简单,但我无法找到我做错的事。我有一个带有部分的表格视图,我可以删除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
类出现消息“发送到解除分配的实例的消息”
重要的是要提到我的项目实际上并未从数据源中删除。它们只从表格视图中消失。
答案 0 :(得分:0)
为什么在将表1中的项目设置为它时自动释放itemsOfGroup?应该是设置后的释放调用,或者更好地使用具有属性的self ...机制。在此处检查您的内存分配/删除。你丢弃了所有的内容吗?此外,删除后,你的numberOfRowsInSection:和numberOfSections是什么:返回?检查那些。