两个模型类
AUser
- name
AGroup
- users
群组和用户分享多对多关系。
我希望检查两组是否共享完全相同的用户(不是更多用户或更少用户)
但遗憾的是我收到以下错误: to-many key not here here
请注意,我已经查看了其他SO问题,但似乎没有一个问题,因为我在过去的两个小时内尝试使用他们的方法,但我无法让它工作。或者至少我对它们并不了解。
我的谓词也可以比较两个可变集合吗?
- (BOOL)conversationExists:(NSMutableSet *)members {
NSFetchRequest *request= [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"AGroup" inManagedObjectContext:_managedObjectContext];
NSPredicate *predicate =[NSPredicate predicateWithFormat:@"users==%@",members];
//There is more code that I have not shown here as it is irrelevant to the question
//Mainly The NSPredicate line is the problem
}
非常感谢你的时间。我真的很感激。
从, 新的iOS程序员
答案 0 :(得分:2)
这篇文章有一个答案:How to use the "ALL" aggregate operation in a NSPredicate to filter a CoreData-based collection
基本上是这样的:
[NSPredicate predicateWithFormat:@"SUBQUERY(members, $member, $member IN %@).@count = %d", members, [members count]];
答案 1 :(得分:2)
为什么需要成为谓词?
[[groups valueForKey:@"users"] isEqualToSet:members]
出了什么问题?