Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to bind NSTreeController's Children to Core Data ordered to-many-relationship?

Apple introduced ordered to-many-relationships in Core Data in Lion. I created an entity named TreeNode with an 1:1-object-relation, a 1:1-parent-relation and an ordered to-many-relationship children.

Then I have an NSTreeController with the children key path set to TreeNode.children. Running the application only shows first level elements. So children is not working. Since children is an ordered to-many-relationship, the corresponding class has an NSOrderedSet children. I added a custom method

- (NSArray *) childrenArray {
  return [children array];
}

to TreeNode which works. I could not find any documentation concerning that topic. Is it really the way to go when binding NSTreeController to an ordered to-many-relationship? Thanks in advance.

like image 609
Marius Heidenstecker Avatar asked Aug 12 '11 11:08

Marius Heidenstecker


1 Answers

It seems that Apple gave us ordered sets for Core Data but forgot to upgrade its binding controllers. One year later after your question, the problem is still there.

Have a look at:

https://github.com/robertjpayne/DDOutlineView

Moral of the story. Be careful when using ordered relationships, try to do your own implementation until Apple fully implements that feature

like image 94
SystematicFrank Avatar answered Nov 04 '22 03:11

SystematicFrank