2011-08-29 53 views
2

我有一个分贝以下关系式:CoreData - NSPredicate与NSSet中

enter image description here

一个< < - >> B

答:会员表; B:活动表

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

当用户从tableView中选择一个活动时,应该将一个新的tableView与所有具有该活动的成员一起推送。

在 “孩子” 的tableView的NSPredicate,我做的:

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

,其结果是:

***终止应用程序由于未捕获的异常 'NSInvalidArgumentException' 的,原因:'to-many key not permitted here'

我在做什么错?

感谢,

RL

回答

7

尝试

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

我没有做太多这与CoreData复杂的,但我的理解是,查询应该返回是在所有会员对象hasMembers使用由CoreData维护的托管对象ID进行设置。让我知道事情的后续。

+0

完美! 谢谢:) –