On Oct 14, 2013, at 8:32 PM, Jens Alfke <[email protected]> wrote: > On Oct 14, 2013, at 3:49 PM, Michael Babin <[email protected]> wrote: > >> I used the method described here on a project using NSTreeController and >> bindings to populate an outline view: >> http://blog.wilshipley.com/2006/04/pimp-my-code-part-10-whining-about.html >> I'm not aware of any changes to NSTreeController/bindings that would replace >> this approach, but I'm always ready to be pleasantly surprised. :-) > > Well, the big change is that what Wil in 2006 called the "strange little > shadow objects that point to your REAL objects when you put real objects into > an NSTreeController” are now public API, as NSTreeNode instances. This makes > it feasible to navigate the controller’s tree without having to do a lot of > NSIndexPath gunk the way his code does. > > These days, to get the index paths of model objects you “simply” have to > recurse down the NSTreeNode hierarchy, which is still a mess but probably a > lot more efficient than Wil’s 2006 code. So I guess it’s time for me to write > that code...
I've found that it's far more efficient to recurse *up* the NSTreeNode hierarchy — e.g. start with the object you're looking for, then look at its parent, then its grandparent, etc. until you end up at the root. This way you only have to iterate through the objects that make up your object's family tree, instead of having to search the whole hierarchy the way Shipley's code does (causing all sorts of unnecessary nodes to be lazily created in the process). Of course, your objects have to have a reference back to their parents for this to work. Charles _______________________________________________ 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [email protected]
