问题
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.
回答1:
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
来源:https://stackoverflow.com/questions/7039165/how-to-bind-nstreecontrollers-children-to-core-data-ordered-to-many-relationshi