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>
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 mails | Author | Date |
|---|---|---|
| Dex Morgan | Apr 27, 00:03 | |
| Ben Lachman | Apr 27, 06:44 | |
| William Turner | Apr 28, 07:15 | |
| Dex Morgan | Apr 30, 01:22 |






Cocoa mail archive

