Skip navigation.
 
mlRe: Observer CoreData Objects changes
FROM : Ben Lachman
DATE : Sun Apr 27 06:44:53 2008

I'm not completely clear on what you're wanting, but you might try this:

•Have your controller observe the managed object context's 
NSManagedObjectContextObjectsDidChangeNotification, the userinfo of 
this note contains the key NSInsertedObjectsKey and 
NSDeletedObjectsKey which should let you know which objects to start/
stop observing.  Make sure you read the docs about this note and when 
it's sent, etc.

•In your controller call addObserver:forKeyPath:... on each of the 
newly added objects that you're interested in.

In general though it is easier to bind to stuff through a pre-built 
controller that is in entity mode than observe all the objects 
yourself. KVO is definitely the way to go though since it gives you 
change info.

HTH,
->Ben
--
Ben Lachman
Acacia Tree Software

http://acaciatreesoftware.com

email: <email_removed>
twitter: @benlachman
mobile: 740.590.0009



On Apr 26, 2008, at 6:03 PM, Dex Morgan wrote:

> Hello,
> I need to observe from a controller class when a particular 
> attribute of a  NSManagedObject in my persistent store is changed.
> I've tried with:
> - (BOOL)validateValue:(id *)value forKey:(NSString *)key error:
> (NSError **)error
>
> in my class. Unfortunatly I need to keep the old value in order to 
> make a comparison between it and the new value (id* value) and this 
> method does not allow it.
> So I've tried using
>
> - (void) addObserver:<#(NSObject *)observer#> forKeyPath:<#
> (NSString *)keyPath#> options:<#(NSKeyValueObservingOptions)
> options#> context:<#(void *)context#>
>
> but the only way to keep changes of all objects is to put this 
> method into the init of my class (inside a subclassed method - (id)
> initWithEntity:(NSEntityDescription *)entity 
> insertIntoManagedObjectContext:(NSManagedObjectContext *)context).
> Bleah, it's not a great solution right?
> Anyone can point to me to the right way?
>
> Thanks in advanced
> _______________________________________________
>
> Cocoa-dev mailing list (<email_removed>)
>
> 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/<email_removed>
>
> This email sent to <email_removed>

Related mailsAuthorDate
mlObserver CoreData Objects changes Dex Morgan Apr 27, 00:03
mlRe: Observer CoreData Objects changes Ben Lachman Apr 27, 06:44
mlRe: Observer CoreData Objects changes William Turner Apr 28, 07:15
mlRe: Observer CoreData Objects changes Dex Morgan Apr 30, 01:22