【问题标题】:CoreData - NSPredicate with NSSetCoreData - NSPredicate 和 NSSet
【发布时间】:2011-11-06 08:08:57
【问题描述】:

我有一个具有以下关系的数据库:

A > B

A:成员表; B:活动表

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

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

在“子”tableView 的 NSPredicate 中,我这样做:

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

结果是:

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

我做错了什么?

谢谢,

强化学习

【问题讨论】:

    标签: objective-c core-data many-to-many nspredicate


    【解决方案1】:

    试试

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

    我没有对 CoreData 做太多复杂的事情,但我的理解是查询应该返回 hasMembers 集中的所有成员对象,使用由 CoreData 维护的托管对象 ID。告诉我进展如何。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      相关资源
      最近更新 更多