我有一个具有以下关系的数据库:
A< - >>乙
A:会员表; B:活动表
会员有很多活动,每个活动都有很多会员。所以,有多对多的关系。
当用户从tableView中选择一个Activity时,应该使用具有该Activity的所有成员推送一个新的tableView。
在“child”tableView的NSPredicate中,我这样做:
request.entity = [NSEntityDescription entityForName:@"Members" inManagedObjectContext:context];
request.predicate = [NSPredicate predicateWithFormat:@"memberActivity = %@", [NSSet setWithObject:activity]];
结果是:
***因未捕获的异常而终止应用 'NSInvalidArgumentException',原因:'这里不允许使用多对键'
我做错了什么?
谢谢,
RL
答案 0 :(得分:7)
尝试
request.predicate = [NSPredicate predicateWithFormat:@"self in %@", [activity hasMembers]];
我对CoreData的这种复杂性没有做太多,但我的理解是查询应该使用CoreData维护的托管对象ID返回hasMembers集中的所有Member对象。让我知道它是怎么回事。