Wenn ich eine Reihe von meinem Tisch mit einer Standard-Animation lösche wie UITableViewRowAnimationFade
der Code mit diesem Fehler abstürzt:Löschen von Tabellenzeile mit Animation mit Kerndaten
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid update: invalid number of rows in section 1. The number of rows contained in an existing section after the update (4) must be equal to the number of rows contained in that section before the update (4), plus or minus the number of rows inserted or deleted from that section (0 inserted, 1 deleted).'
Wenn ich die Animation Linie der Zeile Entfernen entfernen/Löschen funktioniert, aber ich habe nicht mehr den coolen Apple Löschübergang.
Hier ist mein Code - jede Hilfe wird geschätzt. Diese Methode zum Löschen von Zeilen arbeitete vor iOS4, nicht sicher, ob etwas geändert hat?
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
// If row is deleted, remove it from the list.
if (editingStyle == UITableViewCellEditingStyleDelete) {
NSIndexPath *path = [NSIndexPath indexPathForRow:indexPath.row inSection:0];
MyItem *myItem = [self.getItemsFetchedResultsController objectAtIndexPath:path];
[dataRepository deleteItem:myItem];
// If I comment this line out the delete works but I no longer have the animation
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
[self.tableView reloadData];
}
}
Data Repository:
-(void)deleteItem:(MyItem *)myItem {
[self.managedObjectContext deleteObject:myItem];
[self saveCurrentContext];
}
Vielen Dank für Ihre Antwort, aber ich habe NSFetchedResultsControllerDelegate nicht umgesetzt - das klingt wie etwas, das ich schauen in sollte. Ich habe es geschafft, mein Problem zu beheben und habe die Antwort geschrieben – KSoza