我有一个简单的情况,我有两个与多对多关系相关的实体。
两个对象,警报和标签。当我想获取与给定标签关联的所有警报时,我尝试了这个:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ IN tags", theTag];
我得到的是所有警报,而不仅仅是与标签相关的警报。
但是,尝试相反的方法:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF in %@", theTag.alarms];
由于与代码重用有关的复杂原因,我真的需要第一个工作。任何帮助将非常感激!谢谢!
答案 0 :(得分:1)
如果您有一个Tag
对象,那么您可以通过以下方式获取所有警报:
NSSet *alarms = [theTag alarms];
如果由于某些奇怪的原因你必须使用获取请求(你不应该这样做),你的谓词应该是:
NSPredicate *p = [NSPredicate predicateWithFormat:@"tags CONTAINS %@", theTag];