2017-08-29 1 views
3

Ich habe eine Datenmodellbeziehung von Person - Children in Core Data. So zum Beispiel kann eine Person Kinder haben und seine Kinder können Kinder haben, und so können die Kinder seiner Kinder Kinder haben und so weiter.Holen Sie alle untergeordneten Elemente in den Stammdaten mithilfe des Prädikats

Wie könnte ich alle Kinder, Enkelkinder und Enkelkinder mithilfe eines Prädikats holen?

+0

Kann ein Kind nur einen oder mehrere Elternteile haben? – pbasdf

+0

Kind kann nur 1 Elternteil haben. –

+0

Und sind "Kind" und "Person" verschiedene Entitäten? Oder ist "Kinder" eine reflexive Beziehung von "Person" zu "Person"? – pbasdf

Antwort

0

Wenn Sie eine Person zum Gegenstand haben, thePerson, dann um ihre Kinder zu holen würden Sie das folgende Prädikat verwenden:

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

ihre Enkel zu holen, verwenden Sie:

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

und für ihre große -grandchildren verwenden:

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

diejenigen zusammen Kombinieren:

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

Danke für die Antwort. Und verzeihen Sie, wenn ich ein "festes" Beispiel in meiner Frage verwendete. Aber was ist, wenn ich nicht die Anzahl der Ebenen kenne, um die meisten Kinder zu bekommen? –

+0

Ich hatte Angst, dass du das willst. Ich denke, Sie müssen vielleicht Ihr Modell ändern - aber ich muss darüber nachdenken, wie ich es am besten ändern kann. – pbasdf

Verwandte Themen