CloudKit CKReferenzen abrufen, Best Practice?

8

In meinem CloudKit-Setup habe ich den Datensatztyp Person und jede Person hat ein Friend -Attribut, das ein CKReference zu einem anderen Person -Objekt ist.

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

Nur so kann ich es sehen, aber was wäre die beste Praxis? Zumal ich eine sehr große Anzahl von Freunden abhole. Es scheint widersprüchlich, alle diese Objekte einzeln zu holen.

Ich habe mich gefragt, ob es eine Methode ähnlich CoreData gibt, wo Sie wählen können, verwandte Objekte im Hauptfetch zu holen? Wenn ich zum Beispiel ein Person abrufe, hat es automatisch auch die Freunde geholt.

Jede Hilfe, die dies beleuchtet, wäre sehr dankbar, danke.

    
Josh Kahane 01.12.2014, 15:14
quelle

2 Antworten

5

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

%Vor%

Wenn Sie recordIdMe und recordIdOther sehen, sollten Sie ein Array von gültigen CKReference -Objekten haben.

In CloudKit gibt es keine Funktionalität zum automatischen Abrufen verwandter Datensätze.

    
Edwin Vermeer 01.12.2014, 20:01
quelle
1

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

Sie erhalten ein Wörterbuch zurück, damit Sie die Ergebnisse mit der ursprünglichen Liste abgleichen können.

    
Yariv 22.02.2015 07:40
quelle