核心数据 - NSPredicate可过滤多对多关系

时间:2010-03-26 03:59:26

标签: iphone cocoa-touch core-data nspredicate nsfetchrequest

我有2个实体,任务和列表。每个任务与一个名为“list”的List对象具有一对一的关系,并且与List有一个反向关系,它与Task有一个to-many关系,称为“tasks”。

我正在尝试使用带有NSPredicate的获取请求来获取属于指定List的所有Task对象:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"list=%@", theList];
[fetchRequest setPredicate:predicate];

(其中“theParent”是对List对象的引用)。但是,这不会返回任何提取的对象。如果我取出谓词,那么返回对象(所以我知道它们存在,并且通过NSLogging theList我知道它有与之关联的Task对象。)

由于

1 个答案:

答案 0 :(得分:11)

你的谓词中可能是一个简单的拼写错误吗?

当我假设你真正想要的是“list ==%@”时,你有“list =%@”

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"list == %@", theList];
[fetchRequest setPredicate:predicate];