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 /の代わりに何を置きますか?
事前に感謝し、英語が下手で申し訳ありません。問題が明確になることを願っています!