CoreData - NSP предикат с NSSet - PullRequest
       16

CoreData - NSP предикат с NSSet

2 голосов
/ 30 августа 2011

У меня есть БД со следующими отношениями:

enter image description here

A << - >> B

A: таблица членов;B: Таблица действий

Участник имеет много действий, и у каждого действия есть много участников.Таким образом, отношение «многие ко многим».

Когда пользователь выбирает Activity из tableView, необходимо отправить новый tableView со всеми членами, у которых есть эта Activity.

В NSP-предикате"child" tableView, я делаю:

request.entity = [NSEntityDescription entityForName:@"Members" inManagedObjectContext:context];    
request.predicate = [NSPredicate predicateWithFormat:@"memberActivity = %@", [NSSet setWithObject:activity]];

И результат:

*** Завершение работы приложения из-за необработанного исключения 'NSInvalidArgumentException', причина: 'to-manyключ здесь не разрешен '

Что я делаю не так?

Спасибо,

RL

1 Ответ

7 голосов
/ 30 августа 2011

Попробуйте

request.predicate = [NSPredicate predicateWithFormat:@"self in %@", [activity hasMembers]];

Я не выполнил большую часть этой сложности с CoreData, но я понимаю, что запрос должен возвращать все объекты Member, которые есть в наборе hasMembers, используя поддерживаемый идентификатор управляемого объектапо CoreData.Дайте мне знать, как это происходит.

...