Delete NSManageObject at the event tableView:commiteEditingStyle:forRowAtIndexPath:
- by David.Chu.ca
I got exception when I tried to delete one NSManageObject at the event of tableView:commiteEditingStyle:forRowAtIndexPath:. Here is the part of my codes:
- (void)tableView:(..)tableView commitEditingStyle:(..)editingStyle
forRowAtIndexPath:(..)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
[managedObjectContext deleteObject:
[fetchedResultController objectAtIndexPath:indexPath]];
...
}
}
The exception was thrown at the line of deleteObject:(method of my local NSManagedObjectContext). This is the exception message:
uncaught exception 'NSObjectInaccessibleException', reason: 'The NSManagedObject with ID:0x3d07a30 <x-coredata://0D2CC9CB-042B-496D-B3FE-5F1ED64EAB97/paymentType/p2> has been invalidated.'
I tried to get entity object first and then to delete it. The entity looks OK but still the exception was at delete:
NSManagedObject *entityToDelete =
[fetchedResultsController objectAtIndexPath:indexPath];
[mangedObjectContext deleteObject:entityToDelete]; // Exception again.
I am not sure if the entity object retrieved from the fetchedResultsController(NSFetchedResultsController type) cannot be deleted? If so, is there any other way to get the entity object for deleting?