したがって、テーブルビューの行を削除するための次のコードがあります。
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
[self.cellArray removeObjectAtIndex:indexPath.row/2];
[[NSUserDefaults standardUserDefaults] setObject:self.cellArray forKey:@"cellArray"];
[tableView deleteRowsAtIndexPaths:[NSMutableArray arrayWithObject:indexPath] withRowAnimation:YES];
}
これを行うので、indexPath.row/2を実行します。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [cellArray count] * 2;
}
それが私のUIをそのように見せているからです。とにかくこれはクラッシュです:
***キャッチされなかった例外によるアプリの終了'NSInternalInconsistencyException'、理由:'無効な更新:セクション0の行数が無効です。更新後の既存のセクションに含まれる行数(42)は、行数と同じである必要があります更新前にそのセクションに含まれていた(44)、そのセクションから挿入または削除された行の数(0が挿入、1が削除)、およびプラスまたはマイナスがそのセクションに出入りした行の数(0が移動) 、0が移動しました)。
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
NSIndexPath *nextPath = [NSIndexPath indexPathForRow:indexPath.row + 1 inSection:indexPath.section];
[self.cellArray removeObjectAtIndex:indexPath.row/2];
[[NSUserDefaults standardUserDefaults] setObject:self.cellArray forKey:@"cellArray"];
[tableView deleteRowsAtIndexPaths:[NSMutableArray arrayWithObjects:indexPath, nextPath, nil] withRowAnimation:UITableViewRowAnimationFade];
}