2014-12-01 8 views
8

In meinem CloudKit Setup habe ich einen Person Datensatztyp und jede Person hat ein Friend Attribut, das ein CKReference zu einem anderen Person Objekt ist.CloudKit Abrufen von CKReferenzen, Best Practice?

Ich hole alle PersonCKRecord s. Ich liste diese Leute in einer Tabelle auf und liste ihre Freunde mit ihnen auf. Momentan nehme ich einfach die CKReference und hole jeden Freund einzeln mit der recordID.

Dies ist die einzige Art, wie ich es tun sehen, aber was würde die Best Practice sein? Zumal ich eine sehr große Anzahl von Freunden abhole. Es scheint widersprüchlich, alle diese Objekte einzeln zu holen.

Ich frage mich, ob es eine Methode ähnlich wie CoreData gab, wo Sie wählen können, verwandte Objekte im Hauptfetch zu holen? So zum Beispiel, wenn ich eine Person holen holt es automatisch die Freunde auch.

Jede Hilfe, die Licht darauf wirft, würde sehr geschätzt, danke.

+0

Grund für eine Abstimmung nach unten? Ich kann nicht genau sehen, welchen Fehler ich mache, wenn ich frage. –

+4

Einverstanden. Ich denke, dass die Wähler sich selbst ausweisen und ihre Gründe angeben müssen, über die andere abstimmen können, wenn sie der Meinung sind, dass die Gründe lahm sind. – Gallymon

+0

Nun, mit meiner Entwurzelung ist es wieder 0 –

Antwort

5

Sie können eine 'in' Prädikatabfrage verwenden, um mehrere IDs abzurufen. Sie können ein Prädikat wie folgt definieren:

NSPredicate(format: "To_ID in %@", [recordIdMe, recordIdOther])! 

In Ihrem Fall, wo Sie die recordIdMe und recordIdOther sehen sollten Sie eine Reihe von gültigen CKReference Objekte.

In Wolkenjunge gibt es keine Funktionalität, um automatisch verknüpften Datensätze abzurufen.

1

Eigentlich sollten Sie alle RecordIDs sammeln und eine CKFetchRecordsOperation zum relevanten Datenbankobjekt hinzufügen.

Sie erhalten eine Rück ein Wörterbuch, um die Ergebnisse mit der ursprünglichen Liste entsprechen zu helfen.