2017-08-29 7 views
3

私は、コアデータにおけるPerson - Childrenのデータモデルの関係を持っています。 例えば、A Personは子供を持つことができ、その子供は子供を持つことができるので、子供の子供は子供を持つことができます。述語を使用してコアデータ内の親のすべての子をフェッチする

述語を使用して、すべての子、孫、および壮大な子供をフェッチできますか?

+0

子供には親が1人か複数でもかまいませんか? – pbasdf

+0

子は親を1つしか持てません。 –

+0

'Child'と' Person'の異なるエンティティはありますか?あるいは、「子供」は「人」から「人」への反射的な関係ですか? – pbasdf

答えて

0

あなたが子供たちをフェッチし、その後、Personオブジェクト、thePersonを持っている場合は、次の述語を使用します:孫を取得するには

NSPredicate(format:"parent == %@", thePerson) 

を、使用:

NSPredicate(format:"parent.parent == %@", thePerson) 

とその偉大なため-grandchildren、用途:

NSPredicate(format:"parent.parent.parent == %@", thePerson) 

NSPredicate(format:"parent == %@ OR parent.parent == %@ OR parent.parent.parent == %@", thePerson, thePerson, thePerson) 
+1

答えをありがとう。私の質問に「固定」の例を使用した場合、私を許してください。しかし、私が最下位の子供を得るためのレベルの数を知らなければどうでしょうか? –

+0

私はあなたがそれを望むかもしれないと恐れていました。私はあなたのモデルを変更する必要があるかもしれないと思いますが、私はそれをどのように変更するのがベストかを考える必要があります。 – pbasdf

関連する問題