Delete NSManageObject at the event tableView:commitEditingStyle:forRowAtIndexPath:
Posted
by David.Chu.ca
on Stack Overflow
See other posts from Stack Overflow
or by David.Chu.ca
Published on 2010-05-05T04:53:24Z
Indexed on
2010/05/09
20:38 UTC
Read the original article
Hit count: 451
iphone
I got exception when I tried to delete one NSManageObject at the event of tableView:commitEditingStyle: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?
I found that in the Apple's Core Data Tutorial for iPhone with events example, there is on NSArray to hold event entity objects. I am not sure if that's necessory to use NSArray to hold my local entity objects and then use it for deleting?
© Stack Overflow or respective owner