Без обратных связей для каждого отношения ко многим, нет, вы не можете выполнить запрос выборки, который вы описали. Тем не менее, вы должны моделировать обратные отношения. CoreData использует обратные выражения для поддержания согласованности графа объекта. Учитывая parent
отношения от Child
до Parent
и Grandchind
до Child
, вы можете сделать
Pareint *aParent; //already initialized
NSSet *allGrandchildren = [aParent valueForKeyPath:@"children.@unionOfSets.children"];
или запрос выборки для объекта Grandchild
с предикатом:
[NSPredicate predicateWithFormat:@"parent.parent == %@", aParent];