• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag
 

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: watch changes to any properties on an object
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: watch changes to any properties on an object


  • Subject: Re: watch changes to any properties on an object
  • From: Ben Trumbull <email@hidden>
  • Date: Thu, 3 Sep 2009 12:30:33 -0700

Well, @dynamic doesn't have anything to do with KVO. It's just storage and accessors for properties. Core Data knows when non- dynamic modeled properties change too. It sets a dirty flag, just as you would have to. Most of that happens in -willChangeValueForKey:. Unfortunately, overriding that method was deprecated in 10.5. KVO no longer guarantees overrides will be called.

In terms of knowing what to save, Core Data only tracks that at an object level, and uses snapshot deltas to compute the changed property set at the end.

Some people invert the observing relationship to work around this. You can add code in your setters to set a dirty flag, or within your setters manually call a notify method on another object. If you have fewer objects, you could just use NSNotifications.

Almost certainly worth filing an enhancement request at bugreport.apple.com

- Ben

Ok, thats what i thought. But just for implementation ideas, how does
CoreData know when one of it's @dynamic properties is changed? It must
set some sort of flag somewhere in order to know what to write out
when it needs to save. How does it handle that?

thx

AC

On Sep 3, 2009, at 12:27 PM, Jens Alfke wrote:


On Sep 3, 2009, at 8:24 AM, Alexander Cohen wrote:

I have a base object that needs to know when any of it's properties
or subclasses properties have changed and set a dirty flag on
itself. Is there a way to do this?

No, not in general. Key-value observing requires knowing the exact property name(s) in advance. You'll need to set the 'dirty' flag manually.

˜Jens


_______________________________________________

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


  • Follow-Ups:
    • Re: watch changes to any properties on an object
      • From: Alexander Cohen <email@hidden>
  • Prev by Date: Re: watch changes to any properties on an object
  • Next by Date: Re: NSServices
  • Previous by thread: Re: watch changes to any properties on an object
  • Next by thread: Re: watch changes to any properties on an object
  • Index(es):
    • Date
    • Thread