CoreData - 使用NSSet进行NSPredicate

Rui*_*pes 2 many-to-many core-data objective-c nspredicate

我有一个DB具有以下关系:

在此输入图像描述

A << - >> B

A:会员表; B:活动表

会员有很多活动,每个活动都有很多会员.所以,有多对多的关系.

当用户从tableView中选择一个Activity时,应该使用具有该Activity的所有成员推送一个新的tableView.

在"child"tableView的NSPredicate中,我这样做:

request.entity = [NSEntityDescription entityForName:@"Members" inManagedObjectContext:context];    
request.predicate = [NSPredicate predicateWithFormat:@"memberActivity = %@", [NSSet setWithObject:activity]];
Run Code Online (Sandbox Code Playgroud)

结果是:

***由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'此处不允许使用多对键'

我究竟做错了什么?

谢谢,

RL

Ali*_*lle 7

尝试

request.predicate = [NSPredicate predicateWithFormat:@"self in %@", [activity hasMembers]];
Run Code Online (Sandbox Code Playgroud)

我没有用CoreData做很多这种复杂性,但我的理解是查询应该使用CoreData维护的托管对象ID返回hasMembers集中的所有Member对象.让我知道事情的后续.