0

Core Data を使用する xCode プロジェクトでは、Article と ArticleMarket の 2 つのエンティティを取得しました。それらは 1 対多の関係にあり、1 つの記事には n 個の articlemarkets があります。

これを尊重するすべての記事を取得する必要がありますNSPredicate

"SUBQUERY(markets, $m, " +
                        "$m.startVisibility <= /*TODAY*/ AND " +
                        "$m.sellDate <= /*TODAY*/ AND " +
                        "$m.outSellDate >= /*TODAY*/ AND " +
                        "$m.state = '1' AND " +
                        "$m.maxXOrder != 0" +
                    ").@count > 0"

これは、Article にリレーションシップのような「markets」コレクション フィールドがある場合に機能します。問題は、フィールドが a であることですFetched Property。すべての ArticleMarket を対応する記事にリンクする必要があり、何千もの記事があるため、関係にすることはできません。

したがって、その述語はリレーションシップでは機能しますが、フェッチされたプロパティでは機能しません。それは私にこのエラーを与えます:

Can't have a non-relationship collection element in a subquery

私はこれを考えました: Fetched プロパティの述語にその述語を直接入れることはできますか? それが結果です:

$FETCH_SOURCE.id == articleId AND 
startVisibility <= /*TODAY*/ AND
sellDate <= /*TODAY*/ AND
outSellDate >= /*TODAY*/ AND
state = '1' AND
maxXOrder != 0

わかりました、/ TODAY /の代わりに何を置きますか?

事前に感謝し、英語が下手で申し訳ありません。問題が明確になることを願っています!

4

0 に答える 0