Re: core data - delete of object.
Re: core data - delete of object.
- Subject: Re: core data - delete of object.
- From: Ashley Clark <email@hidden>
- Date: Tue, 18 Nov 2008 06:22:31 -0600
According to the documentation and to my quick test, the
NSManagedObjectContextObjectsDidChangeNotification is sent during
processPendingChanges. At the very least that happens at the end of
every event loop automatically. Even if you've bypassed your event
loop somehow you can still call processPendingChanges on your context
yourself after your object deletion and have it do whatever extra
processing you need.
ie.
NSManagedObjectContext *context = [theObject managedObjectContext];
[context deleteObject:theObject];
[context processPendingChanges];
Ashley
On Nov 18, 2008, at 12:54 AM, John Clayton wrote:
Thanks Jim, unfortunately all occur either at pre-save or save time,
which is too late.
I'm basically looking to restore some state on an object at time of
deletion, e.g.
if A is associated with B via a to-many relationship from A->B, then
when one instance of B is deleted - we need to change a property on A.
On 17/11/2008, at 10:59 PM, Jim Correia wrote:
On Nov 17, 2008, at 4:51 PM, John Clayton wrote:
I'm using core-data and need to know when a particular core-data
object (derived from NSManagedObject of course) is about to be
deleted. I'm deleting objects simply by using the managed object
context's deleteObject method, like this:
[[theObject managedObjectContext] deleteObject:theObject];
Is there a way to be notified immediately of the delete? I need
to know immediately, not only when the context is saved. Am I
missing something painfully obvious here?
now, I could of course put a 'deleteThisObject' method onto the
class I'm deleting, but isn't there a core-data way to handle this?
I've tried catching the
NSManagedObjectContextObjectsDidChangeNotification notification -
but that only fires on context saves, same with the
willTurnIntoFault method as well as the dealloc - all these
methods are only ever called when the context is being saved -
which in my case is (a) unpredictable, (b) too late .
Is -validateForDelete: time too late? If not, that's an option.
You can also try
[context deleteObject: object];
[context processPendingChanges];
... handle notification ...
[context save: &error];
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden