Ich bin gerade dabei, eine App zu erstellen, in der ich Daten speichern, synchronisieren und sichern möchte. Die App speichert keine Dateien, nur Daten, in einer Datenbank. Es wird iOS 8 und höher sein, damit ich CloudKit verwenden kann. Ich habe einige Nachforschungen angestellt und bin mir immer noch nicht sicher, wie Core Data, iCloud und CloudKit zusammenarbeiten.
Nach meinem Verständnis ist CloudKit nur eine Möglichkeit, Daten in die / aus der Cloud zu holen und abzurufen. Ist CloudKit nur eine andere Art, Daten mit iCloud zu synchronisieren?
Meine Fragen sind:
Muss ich bei Verwendung von CloudKit noch eine lokale Kerndatendatenbank erstellen?
- Wenn ja, wird es automatisch mit iCloud synchronisiert oder müsste ich Methoden aufrufen, um an beiden Orten zu speichern?
Wenn die Daten nur in der Cloud gespeichert sind, kann der Benutzer darauf zugreifen, wenn das iOS-Gerät nicht mit dem Internet verbunden ist. Ich habe gelesen, dass CloudKit nur eingeschränkt zwischengespeichert werden kann.
- Wie funktioniert das, wenn das iCloud-Konto nicht aktiviert ist?
Wenn jemand die Funktionsweise der einzelnen Technologien beim Speichern und Synchronisieren der Kerndatendatenbank offline und online aufschlüsseln kann.
Mein derzeitiges Verständnis ist:
Kerndaten werden zum lokalen Speichern von Daten verwendet
iCloud synchronisiert die Daten und speichert sie in der Cloud
CloudKit bietet die Möglichkeit, Daten in der Cloud zu speichern und zu verwalten?
Ich hoffe, ich habe genug Informationen bereitgestellt, damit diese Frage nicht geschlossen wird.
Antworten:
Es ist so:
Wenn Sie CloudKit mit Kerndaten verwenden möchten, müssen Sie Ihren eigenen benutzerdefinierten Code schreiben, um zwischen verwalteten Objekten und CloudKit-Datensätzen zu übersetzen. Es ist nicht unmöglich, aber es ist mehr Code zum Schreiben. Es mag zuverlässiger sein, aber es ist noch zu früh, um es sicher zu sagen.
Ich habe einen Blog-Beitrag geschrieben, in dem CloudKit aus der Perspektive einer Person beschrieben wird, die in der Vergangenheit Core Data und iCloud verwendet hat.
Update , Juni 2016: Ab der neuesten Dokumentation für
NSPersistentStoreCoordinator
ist alles, was mit Core Data mit iCloud zu tun hat, als veraltet markiert. Infolgedessen sollte es wahrscheinlich für neue Entwicklungen vermieden werden.quelle
Mit iOS 13 kündigte Apple neue Funktionen in Core Data an, um besser mit CloudKit arbeiten zu können. Der Hauptzusatz ist NSPersistentCloudKitContainer, der im Grunde die Synchronisierung zwischen Core Data und CloudKit für Sie verwaltet.
Weitere Informationen finden Sie in der WWDC-Sitzung Verwenden von Kerndaten mit CloudKit .
Apple hat auch eine schöne Sammlung von Dokumenten für genau diese Verwendung veröffentlicht: Spiegeln eines Core Data Store mit CloudKit .
quelle