Hi all,

Tell me if I'm missing the point please.

With core data and undo, apparently the undo system + core data (not sure if its a combination of them both), do NOT fire accessor methods on core-data objects when the undo manager changes the state of the object model.

For example (outlined in a previous email), I have a 'Layer' object with many 'Effects'. There is a to-many relationship from the layer to the effects instance called, surprise surprise, 'effects'.

If I create an Effect instance - the accessor methods are fired. If I then hit Ctrl-Z to undo that, none of the accessor methods are fired, only KVO notifications are sent.

Doesn't this behaviour entirely invalidate the idea of putting business/program logic into your core-data derived class accessor methods?

I had thought that it was sensible to derive classes from my core-data objects, and then put logic in them - e.g. when an object is added into a relationship, I can then begin listening for changes on my parent for example - but the fact that none of my accessors are called when the undo manager begins modifying my object graph means that it is *impossible* to rely on using custom accessors because they are not always called when the model is changed.

This in turn leads me to believe that I should only use core-data for pure data storage, and nothing else. And that I should never put any model-changing logic into any custom accessors on my NSManagedObject accessors. Further, the only reason I can see to have custom accessors would be to provide type safety and an easier programming interface to the core-data based API that I am writing.

Have a missed the point? Are there other posts / articles you think could help me?

Thanks
--
John Clayton
Skype: johncclayton




_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to