2

親と子の2つのエンティティがあります。親エンティティは、「子供」という名前の子と多対多の関係を持っています。子には「childName」という名前の文字列属性があります。

親にフェッチされたプロパティを作成したいので、特定の名前の子を返す「specialChild」と呼びましょう。たとえば、「Special」としましょう。次の述語は、フェッチされたプロパティにアクセスすると空のセットを返します。

  • children.childName=="特別"
  • SUBQUERY(children、$ eachChild、$ eachChild.childName = "Special")。@ count> 0
  • SUBQUERY(children、$ eachChild、ANY $ eachChild.childName = "Special")。@ count> 0

私はまだかなり経験が浅いので、どういうわけか述語を台無しにしていると思います。(そして、Appleからの「SUBQUERY」に関するドキュメントはゼロです)親のフェッチされたプロパティ述語で「childNameがSpecialである子」をどのように指定する必要がありますか?

はい、-refreshObject:mergeChanges:を呼び出していますが、それでも空の結果を受け取ります。はい、宛先エンティティは子です。

データモデルの視覚的描写

4

1 に答える 1

2

あなたが欲しいのはですparent==$FETCH_SOURCE AND childName=="Special"。これは、「特別」であり、Childその特別な子を検索するオブジェクトであるすべてのものを取得します。childNameparent

フェッチされたプロパティ述語の属性は、宛先エンティティに存在する必要があります。ここでの宛先はです。これはにのみ存在するため、Child使用できません。childrenParent

この$FETCH_SOURCE部分はself、コードで述語を記述した場合に使用する場所に対応しています。それがなければ、元の子に接続されている子だけでなく、すべての特別な子を取得できますParent。子のparent属性は、フェッチされたプロパティ値を検索する特定のインスタンスでなければならないということです。

于 2013-01-03T23:51:21.440 に答える