0

假设我有一个NSManagedObject呼叫组和一个呼叫用户。他们都与汽车有一对多的关系。

我需要弄清楚组与哪些汽车有关系减去与用户有关系的汽车。

假设组 1 可以访问汽车 A、B、C 和 D。用户 Fred 可以访问汽车 A 和 B。

Fred 可以使用汽车 A 和 B,但我需要创建一个列表,列出他可以使用的组 1 中他尚无权访问的其他汽车。

我需要NSPredicate弄清楚第 1 组与 C 和 D 有关系(A、B、C 和 D 减去 A 和 B,因为他已经可以访问它们)。

4

2 回答 2

1

与这两个集合一起工作的想法是什么?

带功能

- (void)minusSet:(NSSet *)otherSet

您可以删除另一组中的所有对象。对于您的示例:

[group1AccessSet minusSet:userAccessSet]

那么您应该在 group1AccessSet 中拥有所有可能的汽车 :)

group1AccessSet 必须是 NSMutableSet!

苹果文档

于 2013-10-28T22:00:36.530 回答
0

感谢 nielsbot 的建议,我找到了谓词:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"group == %@ AND user != %@", group, user];

NSArray *carList = [Car MR_findAllWithPredicate:predicate];

作品。

于 2013-10-28T22:13:45.980 回答