0

NSManagedObject呼び出されたグループと 1 つの呼び出しユーザーがあるとします。どちらも Car と対多の関係にあります。

グループが関係している車から、ユーザーが関係している車を差し引いたものを計算する必要があります。

たとえば、グループ 1 が車 A、B、C、D にアクセスできるとします。ユーザー Fred は車 A と B にアクセスできます。

Fred は Car A と B を使用できますが、グループ 1 から使用できる他の Car のリストを作成する必要があります。

NSPredicateグループ 1 が C および D と関係があることを把握する必要があります(A、B、C、および D から A と B を差し引いたものは、グループ 1 が既にそれらにアクセスできるためです)。

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 に答える