Core Data Join-Tabelle, hat viele durch, geholt Eigenschaften Prädikat

8

Wie schreibt man eine abgerufene Eigenschaft für die Platzierungseinheit, die ein Array von Benutzern darstellt?

    
fzf 19.01.2013, 06:02
quelle

2 Antworten

15

Für eine abgerufene Eigenschaft users von Ort , die alle Benutzer abruft, deren Einchecken mit dem angegebenen Ort in Beziehung steht, legen Sie

fest
  • das Ziel der abgerufenen Eigenschaft an "User"
  • und das Prädikat "ANY checkins.event == $ FETCH_SOURCE"

Jetzt können Sie das Array von Benutzern für einen Ort abrufen:

%Vor%

Diese abgerufene Eigenschaft entspricht der folgenden Abrufanforderung:

%Vor%

Wenn Sie die abgerufene Eigenschaft users als dynamische Eigenschaft deklarieren:

%Vor%

Dann können Sie den Wert mithilfe der Eigenschaftensyntax abrufen:

%Vor%

Beachten Sie jedoch , dass Sie das gleiche Ergebnis (als Menge) direkt erhalten können, ohne eine abgerufene Eigenschaft zu verwenden:

%Vor%     
Martin R 19.01.2013, 09:03
quelle
2

Ich hoffe, ich habe dich richtig verstanden. Sie möchten eine Liste der Benutzer, die an einem bestimmten Ort eingecheckt haben?

Dann machst du es andersherum. Sie rufen alle User s ab, die mindestens eine Checkin mit einer bestimmten Place haben.

In Core-Data-Begriffen benötigen Sie dafür eine Unterabfrage.

%Vor%

Es gibt nicht viel Dokumentation über SUBQUERY. Ein wenig ist in der Diskussion von expressionForSubquery:usingIteratorVariable:predicate: .

Und die abgerufene Eigenschaft wäre in der Entität Place mit einer Zielentität User und dem Prädikat SUBQUERY(checkins, $CHECKIN, $CHECKIN.event == $FETCH_SOURCE).@count > 0

    
Matthias Bauch 19.01.2013 09:01
quelle

Tags und Links