I just replied directly to Kyle, here's my response:

On Wed, Oct 28, 2009 at 12:16 AM, Kyle Sluder <[email protected]> wrote:
> On Tue, Oct 27, 2009 at 6:58 PM, Martin Cote <[email protected]> wrote:
>> I'm trying to do something really simple with Core Data, but I can't
>> find a graceful way to do it.
>
> Perhaps we can agree on "idiomatic?"  Which is quite different from
> "idiot-o-matic," though I always seem to read it that way.  ;-)

Agreed!

>> I would like to show a form to my user that they can fill, and when
>> they press 'OK', a new managed object is created.  This can be done
>> very simply, but I  would like to use IB bindings as much as possible.
>
> Rather than binding to a temporary managed object, as in Scenario 1
> (which raises even questions about other parts of your app—like entity
> mode array controllers—dealing with this transient object being
> created), the idiomatic approach would be to bind the fields to
> properties of a controller object for your form.  (In practice, this
> might be an NSWindowController/NSViewController subclass, an
> NSObjectController subclass, or a one-off NSObject subclass.)  Then
> you wire up your button to a method on that controller that commits
> editing and creates the managed object.

Well, that's pretty much what I'm doing right now.  What I don't like
about this approach is the manual managed object creation (and setting
up all its properties).  Now I realize that I must sound like a very
lazy person.  I was just hoping I could bind my GUI directly to a
managed object instead of using an intermediate controller object.

> Alternatively, you could forego bindings and create traditional
> outlets to your UI objects, querying them from within your button's
> action method.  But bindings make the work so much easier, especially
> with NSEditorRegistration-conforming controllers!

Oh, NSEditorRegistration sounds interesting.  I'll continue reading.

> To be honest, this is a very fundamental Cocoa pattern, yet it took me
> the better part of two years to get a handle on it.  Here's what it
> looks like in action (warning, code typed in compose window!):

<snip code sample>

> Hope that helps.  I think I'm going to need to write a blog post to
> make that clearer.  First step would be to get a blog, I guess.

That helps very much.  It's not exactly what I had in mind, but it is
certainly enlightening!

Let me know if you ever get that blog live ;)

Regards,
Martin Cote
_______________________________________________

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