Hallo zusammen!
Ich brauche Bestätigung oder Korrektur meines Verständnisses von diversen Themen bzgl. Core Data mit CloudKit-Synching: Das Grundgerüst einer Mac-Catalyst-App mit entsprechender Synchronisation nimmt langsam Formen an und ich möchte sicher sein, die Zusammenhänge richtig verstanden zu haben.
Habt Ihr Erfahrung mit Core Data inkl. CloudKit-Synching? Dann sagt bitte mal Bescheid, ob das oben Genannte so stimmt oder wo ich etwas mißverstanden habe (ein Verweis auf mehr Informationen wäre dann toll).
Munter bleiben, Mattes
Ich brauche Bestätigung oder Korrektur meines Verständnisses von diversen Themen bzgl. Core Data mit CloudKit-Synching: Das Grundgerüst einer Mac-Catalyst-App mit entsprechender Synchronisation nimmt langsam Formen an und ich möchte sicher sein, die Zusammenhänge richtig verstanden zu haben.
- Im Development wird das Schema auf Basis des Core-Data-Modells erstellt. Änderungen sind möglich und werden automatisch übernommen.
- Die Erstellung entsprechender Record Types etc. erfolgt erst, wenn entsprechende Core-Data-Objekte angelegt werden ("lazy creation").
- Bei grundlegenden Änderungen kann man das Development-Schema (inkl. aller Daten) im CloudKit Dashboard zurücksetzen.
- Vor Veröffentlichung der App muss das Schema manuell in Produktion übernommen werden.
- Um sicher zu sein, dass im Development alle Records angelegt werden, muss man entweder in der App alle Funktionen zur Erstellung von Core-Data-Objekten ausführen. Oder man man führt auf dem NSPersistentCloudKitContainer die Methode
initializeCloudKitSchemaWithOptions:error:
aus: Diese erzeugt Dummy-Records, legt damit das Schema an und verwirft diese Records wieder. Aufgrund des Performance-Impacts sollte man diese Methode nur einmalig vor der Übernahme in Produktion ausführen ... und in der Doku findet man noch ein veraltetes Verfahren mittels Container-OptionshouldInitializeSchema
. - Ein Schema in Produktion kann zwar ergänzt, nicht aber grundsätzlich geändert werden.
Habt Ihr Erfahrung mit Core Data inkl. CloudKit-Synching? Dann sagt bitte mal Bescheid, ob das oben Genannte so stimmt oder wo ich etwas mißverstanden habe (ein Verweis auf mehr Informationen wäre dann toll).
Munter bleiben, Mattes
Diese Seite bleibt aus technischen Gründen unbedruckt.