L'animation de Suppression de Ligne dans UITableView avec CoreData donne échec d'Assertion

J'ai un UITableView qui affiche une liste des objets stockés avec CoreData. Je peux supprimer un objet en utilisant le code suivant:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
    NSLog(@"Delete row");
    [managedObjectContext deleteObject:[fetchedResultsController objectAtIndexPath:indexPath]];

    //Save the context.
    NSError *error;
    if (![managedObjectContext save:&error]) {
        /*do this gracefully one day */
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }
    [self refreshTables]; //where refreshTables just reloads the data the table is using and calls [self.tableView reloadData];
}

}

Mais il n'a pas d'animation ou de l'esthétique.

Lorsque j'essaie d'animer en remplaçant

[self refreshTables]; 

avec

[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];

J'obtiens l'erreur suivante:

Échec d'Assertion dans -[UITableView _endCellAnimationsWithContext:], >/SourceCache/UIKit_Sim/UIKit-1261.5/UITableView.m:920
2010-10-30 16:46:35.717 MyApp[38226:207] * Résiliation d'application en raison de uncaught exception 'NSInternalInconsistencyException', la raison: 'mise à jour incorrecte: non valides nombre de lignes dans la section 0. Le nombre de lignes contenues dans une section existante après la mise à jour (3) doit être égal au nombre de lignes contenues dans cette section avant la mise à jour (3), plus ou moins le nombre de lignes insérées ou supprimées à partir de cette section (0 inséré, 1 supprimés).'

J'ai essayé d'avoir le deleteRowsAtIndexPaths code dans une variété d'endroits dans le commitEditingStyle code à pas de chance (par exemple avant de retirer l'objet à partir de la mOC) mais je n'arrive pas à obtenir autour de cette erreur.

Je sais d'Apple iPhoneCoreDataRecipes exemple traite le problème par la mise en place d'un délégué pour l'FetchedResultsController pour gérer l'édition /suppression de lignes, mais à ce stade du développement, si possible, je veux juste une solution simple pour animer ces objets supprimés.

Comment puis-je animer la suppression d'une ligne, avant/après, j'ai supprimer l'objet de mon managedObjectContext?

EDIT: j'ai essayé d'avoir deleteRowsAtIndexPaths avant et après le retrait de l'élément de la mOC, avec la même erreur.

OriginalL'auteur glenstorey | 2010-10-30