2

これは非常に単純なはずですが、奇妙な動作をしています。

私には3つのエンティティがあり、そのような関係があります

エンティティ A <-->> エンティティ B <<--> エンティティ C

NSFetchedResults コントローラーがあり、次の述語を使用してエンティティ A の結果をフィルター処理しようとしています。

[NSPredicate predicateWithFormat:@"NONE entityB.entityC == %@", self.entityC];

アプリを実行しようとすると、出力に結果が表示されません。述語を次のように少し変更できます。

[NSPredicate predicateWithFormat:@"ANY entityB.entityC == %@", self.entityC];

そして、フィルターで除外したい結果だけを表示します。

なぜこうなった?

4

1 に答える 1

3

SUBQUERY式が必要な場合があると思います。

@"SUBQUERY(entityB, $x, $x.entityC == %@).@count == 0"

ただし、次のように機能する場合があります。

@"NOT (ANY entityB.entityC == %@)"

(注:2番目のオプションはテストしていません)

于 2010-04-05T20:27:48.680 に答える