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

9

我有两个实体,任务和列表。每个任务都与一个名为“列表”的List对象具有一对一的关系,并且与List存在反向关系,List与Task之间具有一对多的关系,称为“tasks”。

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

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

(其中“theParent”是对List对象的引用。) 但是这样返回的没有获取到任何对象。如果我去掉谓词,那么就会返回对象(所以我知道它们存在,并通过NSLogging theList知道它与Task对象相关联)。

谢谢

1个回答

11

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

你使用了 "list=%@",但我猜测你真正想要的是 "list==%@"。

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

4
kharrison和/或@sza:你们能澄清一下你们的意思吗?NSPredicate文档声称在谓词格式字符串中使用===是完全等效的。有没有未记录的区别? - Quuxplusone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接