些細な作業に見えますが、間違っていることを見つけることができません。セクションを含むテーブル ビューがあり、1 つのアイテムを削除できますが、複数のアイテムを削除しようとすると、すべてのアイテムがテーブルから消えます。
ここで、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
)
また、アイテムが実際にはデータ ソースから削除されていないことにも注意してください。それらはテーブル ビューから消えるだけです。