On 8 Jan 2013, at 05:53, Martin Hewitson wrote: > > On Jan 7, 2013, at 08:44 PM, Mike Abdullah <[email protected]> wrote: > >> >> On 7 Jan 2013, at 16:35, Martin Hewitson <[email protected]> wrote: >> >>> Hi Francisco, >>> >>> Thanks for the feedback! >>> >>> What you suggest sounds like it might fix the problem, but I'm wondering >>> how best to do this. Currently I'm just calling -remove: on the tree >>> controller to delete the selected object(s). Of course, if I clear the >>> selection first, then -remove: doesn't do anything. I can grab an array of >>> the selected objects before clearing the selection then use >>> NSManagedObjectContext's -deleteObject:. So something like this: >>> >>> // get a pointer to the selected items >>> NSArray *items = [self selectedObjects]; >>> >>> // clear selection >>> [self setSelectionIndexPaths:@[]]; >>> >>> // now delete from the MOC >>> for (NSManagedObject *item in items) { >>> [self.managedObjectContext deleteObject:item]; >>> [self.managedObjectContext processPendingChanges]; >>> } >>> >>> Does that look sensible to you? >> >> Why are you calling -processPendingChanges at each iteration of the loop? >> Calling it yourself is rarely needed, and best done only with justification. >> > > I read in that thread that I referenced (I think) that it may be necessary to > do this to avoid/handle objects being deleted twice (if a parent and child > are selected, then deleted). To be honest, I'm just trying things to see what > works. Since this problem only occurs on 10.6.8, I think I'm looking for a > work-around.
Hmm. In my case I go to some lengths to figure out which objects don't need to be deleted, because an ancestor has already been deleted. It does seem simpler your way. I wonder though — I don't believe there is any harm in asking Core Data to delete an object that's already been marked for deletion. And indeed, you code is doing that. The difference the -processPendingChanges call makes is that handling the delete rule will happen during that call, so child objects are already marked for deletion. _______________________________________________ Cocoa-dev mailing list ([email protected]) 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [email protected]
