-1

deleteRowsAtIndexPaths を使用してテーブル セルを削除するときに、スワイプ ジェスチャを使用してセルを削除して編集モードに入り、[削除] をクリックするとクラッシュします。編集/完了ボタンを切り替えて編集モードに入ると、セルを削除すると、テーブルは問題なく正常に更新されます。

[table beginUpdates]&も使用してみましたが、[table endUpdates]成功しませんでした。また[table reloadData]、ご覧[table reloadSections:[NSIndexSet indexSetWithIndex: indexPath.section] withRowAnimation: UITableViewRowAnimationFade];のとおり、編集/完了ボタンで編集モードに入ると、同じクラッシュを試しました。

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{
    if (editingStyle == UITableViewCellEditingStyleDelete) 
    {
        NSMutableArray *temp = nil;
        switch (indexPath.section)
        {
            case 0:
            {
                temp = self.entireSavedArray;
                break;
            }
            case 1:
            {
                temp = self.entireSavedArray2014;
                break;
            }
            case 2:
            {
                temp = self.entireSavedArray2013;
                break;
            }
            case 3:
            {
                temp = self.entireSavedArray2012;
                break;
            } 
            case 4:
            {
                temp = self.entireSavedArray2011;
                break;
            }          
            case 5:
            {
                temp = self.entireSavedArray2010;
                break;
            }
            default:
                break;
        }
        [temp removeObjectAtIndex: ((int)indexPath.row * 11)];
        [temp removeObjectAtIndex: ((int)indexPath.row * 11)];
        [temp removeObjectAtIndex: ((int)indexPath.row * 11)];
        [temp removeObjectAtIndex: ((int)indexPath.row * 11)];
        [temp removeObjectAtIndex: ((int)indexPath.row * 11)];
        [temp removeObjectAtIndex: ((int)indexPath.row * 11)];
        [temp removeObjectAtIndex: ((int)indexPath.row * 11)];
        [temp removeObjectAtIndex: ((int)indexPath.row * 11)];
        [temp removeObjectAtIndex: ((int)indexPath.row * 11)];
        [temp removeObjectAtIndex: ((int)indexPath.row * 11)];
        [temp removeObjectAtIndex: ((int)indexPath.row * 11)];

        [self.table deleteRowsAtIndexPaths: [NSArray arrayWithObjects: indexPath, nil] withRowAnimation: UITableViewRowAnimationFade];
        //[tableView reloadSections:[NSIndexSet indexSetWithIndex: indexPath.section] withRowAnimation: UITableViewRowAnimationFade];
    }
}
4

2 に答える 2