4

これは、私のオブジェクト グラフの関連部分です。

Store <-->> Gift <<--> Person <<-->> Tag

次のように、tag.filtering 属性でストアをフィルタリングできるようにしたいと思います。

ANY gifts.person.tags.filtering == YES

しかし、キーが 1 対多に制限されているため、これが機能しない理由は理解できます。したがって、次のように、ネストされた SUBQUERY 述語のセットを使用しようとしています。

NSPredicate* filterPredicate = [NSPredicate predicateWithFormat:
   @"(0 != SUBQUERY(gifts, $x, 
     (0 != SUBQUERY($x.person.tags, $y, $y.filtering==YES).@count)).@count)"];

これは実行時にエラーで失敗します:

"SQLite error code:1, 'no such column: t3.ZFILTERING'"

ここでは正しい軌道に乗っているようですが、同じ構文を使用する他の例は見つかりません。私は何が欠けていますか?

4

1 に答える 1

7

上記の私のコメントから:

[NSPredicate predicateWithFormat:@"SUBQUERY(gifts, $x, ANY $x.person.tags.filtering == YES).@count != 0"]

機能し、ネストされた SUBQUERY よりもさらに単純です。

于 2013-11-03T06:17:51.693 に答える