コア データでネストされたリレーションシップを見つけるために述語をフォーマットするのに問題があります。正しい解決策を見つけるのに役立つと思っていた非常によく似た質問/コメントに出くわしましたが、まだ行き詰まっています.
Gadget の特定のインスタンスに関連する Foo のすべてのインスタンスを検索するフェッチ リクエストを作成しようとしています。
最初に、Foo エンティティの fetchRequest で述語を使用しようとしました。
[NSPredicate predicateWithFormat:@"ANY bar.widgets.gadget == %@", myGadget]
しかし、このフェッチ リクエストは 0 の結果を返します。入れ子になった対多関係のためだと思います。
これまで使用する必要がなかったサブクエリを使用する必要があると思います。多くの調査と読書の後、私は試しました
[NSPredicate predicateWithFormat:@"SUBQUERY(bar.widgets, $w, ANY $w.gadget == %@).@count > 0", myGadget]
そして、私はエラーを受け取ります
SQLite エラー コード:1、「そのような列はありません: t2.ZGADGET」
では、このシナリオにはサブクエリが必要だと考えるのは正しいですか? もしそうなら、どうすれば正しくフォーマットできますか?