On Thu, Apr 23, 2009 at 2:31 PM, Kyle Sluder <[email protected]> wrote:
> On Thu, Apr 23, 2009 at 8:17 AM, ALEXander <[email protected]> wrote:
>> In the renumbering routine, when I access [self arrangedobjects], or even if
>> I do a new fetch on my managedObjectContext, the new object is not there
>> yet. I tried all this:
>
> >From the documentation on -[NSArrayController add:], found at
> http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/ApplicationKit/Classes/NSArrayController_Class/Reference/Reference.html#//apple_ref/doc/uid/20002042-DontLinkElementID_1
> :
>
> "Beginning with Mac OS X v10.4 the result of this method is deferred
> until the next iteration of the runloop so that the error presentation
> mechanism can provide feedback as a sheet."
>
> So you can't expect that immediately after calling -add: that anything
> will have changed.  Maybe you can instead override -newObject.

  An alternative approach is to avoid the -add: method altogether and
write your own method that creates the object (and inserts it into the
MOC if using Core Data) via code. This way, you know that the object
is ready to go (or not ready to go) and can tell the array controller
to update (or throw an error) yourself when you choose. Just make sure
you're following proper KVO etiquette by wrapping the changes with
-will/didChangeValueForKey: (and not "changing the array behind the
controller's back").

  This is the way I handle this scenario, but admittedly, I'm doing
this with Core Data. The problem I'm solving is not only DnD and
manual sort order, but also some complicated model prep work when a
new 'record' is created (ie, each 'record' is a pretty complicated
object graph in its own right).

  Put simply, the -[NSArrayController add:] method is a convenience.
If you need control, you probably need to roll your own method.

--
I.S.
_______________________________________________

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