2014-12-01 9 views
8

W konfiguracji CloudKit mam typ rekordu Person, a każda osoba ma atrybut Friend, który jest CKReference dla innego obiektu .CloudKit Fetching CKReferences, najlepsze praktyki?

I pobrać wszystkie PersonCKRecord s. Wymieniam tych ludzi w tabeli i wymieniam ich z nimi. Obecnie po prostu biorę CKReference i indywidualnie pobiera każdego znajomego przy użyciu recordID.

To jedyny sposób, w jaki mogę to zrobić, ale jaka byłaby najlepsza praktyka? Szczególnie, że jestem potencjalnie bardzo dużą liczbą przyjaciół. Wydaje się sprzeczne z intuicją, aby pobierać wszystkie te obiekty pojedynczo.

Zastanawiam się, czy istnieje metoda podobna do CoreData, gdzie można wybrać pobieranie powiązanych obiektów w głównym pobraniu? Tak więc na przykład, gdy pobieram Person, automatycznie pobierane są również te same wiadomości.

Każda pomoc rzucająca światło na ten temat zostanie bardzo doceniona, dzięki.

+0

Powód przegłosowania? Nie mogę dokładnie zobaczyć, z jakim błędem pytam. –

+4

Uzgodnione. Sądzę, że w dół wyborcy powinni sami zidentyfikować się i podać przyczyny, na które inni mogą głosować, jeśli uważają, że powód/y są lame. – Gallymon

+0

Cóż, po wykorzenianiu wróciłem do 0 –

Odpowiedz

5

Można użyć kwerendy "w" do pobrania wielu identyfikatorów. Można zdefiniować predykat tak:

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

W twoim przypadku widać recordIdMe i recordIdOther trzeba mieć szereg ważnych CKReference obiektów.

W CloudKit nie ma funkcji automatycznego pobierania powiązanych rekordów.

1

Właściwie należy zebrać wszystkie identyfikatory rekordów i dodać CKFetchRecordsOperation do odpowiedniego obiektu bazy danych.

Otrzymujesz zwrotny słownik, który pomoże Ci dopasować wyniki do oryginalnej listy.