Hi all,
Here is the dumb question for the day.

I have a coredata backed UITableView.  I populate a NSFetchedResultsController 
and use that to source the rows and sections etc.  All works well.
That is until I go to delete an item from the table.


- (void)tableView:(UITableView *)tableView 
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath
{
        NSLog(@"commitEditingStyle called");
        TheEntity *myEntity = (VideoEntity *) [fetchedResultsController 
objectAtIndexPath:indexPath];

        NSManagedObjectContext *context = [[self fetchedResultsController] 
managedObjectContext];               
        [context deleteObject:myEntity];
                
        //commit the delete
        NSError *saveError = nil;
        if (![context save:&saveError]) {
                NSLog(@"CoreData save Failure");
        }else {
        //all good removed from coredata
        //now delete from tableView
        
        [self.myTableView deleteRowsAtIndexPaths:[NSArray 
arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}

Then I get an error like

*** Assertion failure in -[UITableView _endCellAnimationsWithContext:], 
/SourceCache/UIKit/UIKit-984.38/UITableView.m:774
*** Terminating app due to uncaught exception 
'NSInternalInconsistencyException', reason: 'Invalid update: invalid number of 
rows in section 0.  The number of rows contained in an existing section after 
the update (3) must be equal to the number of rows contained in that section 
before the update (3), plus or minus the number of rows inserted or deleted 
from that section (0 inserted, 1 deleted).'

This appears to mean I need to remove it from the fetchedResultsController 
before I remove it from the table.  So as NSFetchedResultsController has no 
remove facility I reload it.  Is there a more efficient way of achieving this?

Regards
Damien


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to