My app maintains in its managed object context an array of, say,
Potato objects.  The potatoes in this central managed object context
come and go occasionally -- someone might throw in a new one, or eat
one.  An archived potato is low in calories, consisting of a half
dozen numbers or short strings.

My persistent documents can also contain several potatoes.  To set
one, user clicks a popup menu in the document window.  The popup is
populated by the potatoes currently available in the central managed
object context.

Because the potatoes in this popup are inserted into the central
managed object context, however, I cannot simply "set" one of them
into my document when the user makes their seledtion.  I implement a
custom setter which inserts a ^new^ potato into the document's managed
object context, and copies to it all of the attributes from the
selected potato.

Looks OK to me, but having never seen anything like this, I was
wondering if I'm seeing OK today.

It's fine.

    /* The following one-liner will almost work:
     return [self dictionaryWithValuesForKeys:attributes] ;
     Unfortunately, instead of omitting pairs for which the values
are nil,
     it inserts keys with values of NSNull.  So, I use my own
implementation:
     */

We tried omitting pairs with nil values, and stuff broke. Like views didn't get updated because iterating over the values during setting with (nil = missing) meant nil values didn't get reset. Like with undo or bindings. Your setter here has that issue. You may prefer that behavior, but we found it even more problematic than forcing clients to check for NSNull.

- Ben

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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 arch...@mail-archive.com

Reply via email to