谓词在To-Many关系中获取对象时出现问题

时间:2011-02-09 01:10:41

标签: core-data entity-relationship nspredicate

我有一个简单的情况,我有两个与多对多关系相关的实体。

两个对象,警报和标签。当我想获取与给定标签关联的所有警报时,我尝试了这个:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ IN tags", theTag];   

我得到的是所有警报,而不仅仅是与标签相关的警报。

但是,尝试相反的方法:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF in %@", theTag.alarms];

由于与代码重用有关的复杂原因,我真的需要第一个工作。任何帮助将非常感激!谢谢!

1 个答案:

答案 0 :(得分:1)

如果您有一个Tag对象,那么您可以通过以下方式获取所有警报:

NSSet *alarms = [theTag alarms];

如果由于某些奇怪的原因你必须使用获取请求(你不应该这样做),你的谓词应该是:

NSPredicate *p = [NSPredicate predicateWithFormat:@"tags CONTAINS %@", theTag];