Um ein CKRecord in eine private CKRecordZone einzufügen, müssen Sie sicherstellen, dass die Zone bereits existiert.Wie Sie wissen, ob die CloudKit Zone bereits existiert
Aber bedeutet es, dass jedes Mal, wenn ich einen Datensatz einfügen muss ich alle Zonen abrufen muss und finde, ob meine Zone mit fetchAllRecordZonesWithCompletionHandler
existiert? Es wäre nicht sehr effizient.
Was ist die beste Strategie zu übernehmen?
Die meisten Beispiele, die ich gesehen habe, zeigen, wie man eine Zone erstellt und einen Datensatz hinzufügt. Aber Sie werden nicht die Zone jedes Mal zu erstellen, und man kann nicht einfach davon ausgehen, es existiert ...
-Code unten wird fehlschlagen, wenn die Zone nicht bereits erstellt wurde
let customZone = CKRecordZone(zoneName: self.zoneName!)
// Create a CKRecord
let lessonRecord = CKRecord(recordType: self.recordType, zoneID: customZone.zoneID)
Vielen Dank für Ihre Hilfe.
Es ist komisch, für mich. Warum können wir nicht einfach Zonen aus dem Dashboard erstellen? Bedeutet dies auch, dass wir eine Zone aus einer Entwicklerversion unserer App erstellen können, diesen Code dann löschen und nie wieder Zonencode in Release-Builds verwenden, vorausgesetzt, dass die Zone existiert? (Keine Möglichkeit, Zonen aus der App zu löschen) – Jonny
Zonen existieren nur die private Datenbank. Sie können Zonen oder Datensätze in einer privaten Datenbank nicht vorab ausfüllen. Sie müssen für jeden Benutzer erstellt werden, der Ihre App verwendet. – Duzmac
@Jonny Es würde nichts nützen, eine Zone in der dev-Version zu erstellen. 1) Die Zone würde nur in Ihrer eigenen privaten Datenbank in Entwicklung existieren. 2) Die Zone würde in der produktiven privaten Datenbank nicht existieren. – rmaddy