2012-04-07 6 views
2

Ich habe eine UITableView, die ich in einem UITableViewController bearbeiten möchte. Dieser Code stammt von der Methode, die ich zum Bearbeiten der tableView aufruft.UITableView NSInternalInconsistencyException Error Thrown; Zwei Animationen für eine Zelle

[self.tableView beginUpdates]; 
    [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject: path] withRowAnimation:UITableViewRowAnimationNone]; 
    [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject: path] withRowAnimation:UITableViewRowAnimationNone]; 

    NSMutableArray *things = [[self.fetchedResultsController fetchedObjects] mutableCopy]; 

    self.storedCell = [things objectAtIndex: path.row]; 

    [things removeObjectAtIndex: path.row]; 

    for (int i = 0; i < [things count]; i++) { 
     Task *mo = (Task *)[things objectAtIndex: i]; 
     [mo setValue:[NSNumber numberWithInt: i] forKey:@"displayOrder"]; 
    } 
    [things release]; things = nil; 
    self.newPath = path; 

    [self.managedObjectContext save: nil]; 
    [self.tableView endUpdates]; 

und das ist der Fehler, die ausgelöst wird:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Attempt to create two animations for cell' 

Irgendwelche Ideen auf, was ich falsch gemacht habe?

+0

Haben Sie Glück dabei? – lnafziger

+1

Ja das Nachladen funktioniert, danke für die Hilfe! – geenen124

Antwort

3

Statt zu löschen und dann die gleiche Zeile einzufügen, wenn es das ist, was Sie tun wollen, ist es nur nachladen:

[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:path] withRowAnimation:UITableViewRowAnimationNone]; 

aber es sieht aus wie Sie sollten nur die Zeile werden gelöscht, so sollten Sie wahrscheinlich nur Entfernen Sie die insertRowsAtIndexPaths Zeile. (Natürlich hast du nicht den ganzen Code gepostet, also weiß ich es nicht sicher ....)

Verwandte Themen