いやぁ,長らく触ってないとめちゃくちゃなコードを書いてしまいますね. UITableViewでeditモードに移行したタイミングで「追加のためのセル」を表示するコードとか,すっかり適当に書いてました. ダメなコードはこんな感じ.

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];
    [self.tableView reloadData];
}

よりだめになると,reloadDataを時間差で読んだりしますね.くずコードです.

正しくは,

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];
    
    NSIndexPath *addCellIndexPath = [NSIndexPath indexPathForRow:self.items.count inSection:0];
    
    [self.tableView beginUpdates];
    
    if (self.editing)
        [self.tableView insertRowsAtIndexPaths:@[addCellIndexPath] withRowAnimation:UITableViewRowAnimationTop];
    else
        [self.tableView deleteRowsAtIndexPaths:@[addCellIndexPath] withRowAnimation:UITableViewRowAnimationTop];
    
    [self.tableView endUpdates];
}

です.

self.editingフラグに基づいて,セルの数等をdataSourceデリゲートで調節することを忘れずに. がんばります.