iPhone Core Data получат внуки - PullRequest
       1

iPhone Core Data получат внуки

1 голос
/ 22 августа 2010

Если у меня есть сущности, настроенные для Родителя - Ребенка - Внука, и отношения между ними, я знаю, тогда я могу получить все дочерние сущности для родителя или все сущности Внука для Ребенка.

Можно ли запустить выборку, которая получит все сущности Granchild для данного Родителя?

Спасибо за любую помощь!

1 Ответ

3 голосов
/ 22 августа 2010

Без обратных связей для каждого отношения ко многим, нет, вы не можете выполнить запрос выборки, который вы описали. Тем не менее, вы должны моделировать обратные отношения. CoreData использует обратные выражения для поддержания согласованности графа объекта. Учитывая parent отношения от Child до Parent и Grandchind до Child, вы можете сделать

Pareint *aParent; //already initialized

NSSet *allGrandchildren = [aParent valueForKeyPath:@"children.@unionOfSets.children"];

или запрос выборки для объекта Grandchild с предикатом:

[NSPredicate predicateWithFormat:@"parent.parent == %@", aParent];
...