假设我有一个NSManagedObject
呼叫组和一个呼叫用户。他们都与汽车有一对多的关系。
我需要弄清楚组与哪些汽车有关系减去与用户有关系的汽车。
假设组 1 可以访问汽车 A、B、C 和 D。用户 Fred 可以访问汽车 A 和 B。
Fred 可以使用汽车 A 和 B,但我需要创建一个列表,列出他可以使用的组 1 中他尚无权访问的其他汽车。
我需要NSPredicate
弄清楚第 1 组与 C 和 D 有关系(A、B、C 和 D 减去 A 和 B,因为他已经可以访问它们)。
假设我有一个NSManagedObject
呼叫组和一个呼叫用户。他们都与汽车有一对多的关系。
我需要弄清楚组与哪些汽车有关系减去与用户有关系的汽车。
假设组 1 可以访问汽车 A、B、C 和 D。用户 Fred 可以访问汽车 A 和 B。
Fred 可以使用汽车 A 和 B,但我需要创建一个列表,列出他可以使用的组 1 中他尚无权访问的其他汽车。
我需要NSPredicate
弄清楚第 1 组与 C 和 D 有关系(A、B、C 和 D 减去 A 和 B,因为他已经可以访问它们)。
与这两个集合一起工作的想法是什么?
带功能
- (void)minusSet:(NSSet *)otherSet
您可以删除另一组中的所有对象。对于您的示例:
[group1AccessSet minusSet:userAccessSet]
那么您应该在 group1AccessSet 中拥有所有可能的汽车 :)
group1AccessSet 必须是 NSMutableSet!
感谢 nielsbot 的建议,我找到了谓词:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"group == %@ AND user != %@", group, user];
NSArray *carList = [Car MR_findAllWithPredicate:predicate];
作品。