ЛЮБОЕ слово в предикате с отношениями два ко многим - PullRequest
0 голосов
/ 05 марта 2012

В моей модели CoreData есть 3 объекта со связями «ко-многим»:
job << - >> group << - >> person
Таким образом, группы могут выполнять разные задания, илюди могут быть вовлечены в разные группы.
Я хочу собрать всех людей, которые выполняют какую-то работу.
Мой разум побуждает меня написать что-то вроде этого:
ЛЮБАЯ группа.ЛЮБАЯ работа == 'какая-то работа'
Но я знаю, что это неправильно.:) Будет ли следующий предикат верным и делать то, что я имею в виду:
ЛЮБЫЙ group.job == 'некоторая работа'
?

Ответы [ 2 ]

0 голосов
/ 05 марта 2012

Вам не нужно использовать предикат, чтобы найти всех людей, которые делают какую-то работу.

NSSet* groups = someJob.groups; //this will get all group that does the job
NSMutableSet* people = [NSMutableSet set];
for(Group* aGroup in groups){
  [people unionSet:aGroup.people];  //this will add the people in this group
}
//now people set has all the people that does the job
0 голосов
/ 05 марта 2012

Хотя NSPredicate поддерживает точечный синтаксис, но не со многими связями.Возможно, лучшим решением было бы сделать два отдельных запроса на выборку с сопоставлением предиката @ "ANY job LIKE group" и @ "ANY group LIKE job" и пересечь результаты.

...