2016-03-22 23 views
0

Ich habe einen dreistufigen Hierarchie von Objekten in Coredata: Lassen Entity sagen A einen Satz von Entitäten B hat und Entity B hat eine Reihe von Entitäten C. (Eine Viele-zu-viele B und B Viele-zu-viele C)NSPredicate zählen> 0 auf viele, viele zu viele Beziehung

Ich möchte alle Entitäten A so erhalten, dass die As Bs und Cs haben. Ich versuche, ein Prädikat zu verwenden, wenn Personen, die ein Abrufen: NSPredicate(format: "ANY [email protected] > 0")' aber ich bin immer diese Fehlermeldung: Unsupported function expression count: (bs.cs)

Irgendeine Idee, wie man richtig diese Abfrage schreiben?

+0

Wenn ich es tue, werde ich alle Entity als aus holen, und 'forin', um die richtigen herauszufiltern. – childrenOurFuture

Antwort

0

Der "ANY" -Operator funktioniert nicht mit geschachtelten zu viele Beziehungen, daher benötigen Sie eine "SUBQUERY" (die leider nicht sehr gut dokumentiert ist). So etwas sollte funktionieren:

NSPredicate(format:"SUBQUERY(bs, $b, [email protected] != 0)[email protected] != 0") 

Der SUBQUERY(..) Teil gibt alle im Zusammenhang B Objekte, die C Objekt zumindest einen Zusammenhang haben. Der letzte [email protected] != 0 Teil prüft, ob es mindestens ein verwandtes B Objekt mit dieser Eigenschaft gibt.