Ich habe derzeit Probleme mit der Migration von Core Data iCloud.
Ich möchte ein Geschäft von einem iCloud-Ubiquity-Container ( .nosync
) in eine lokale URL verschieben. Das Problem ist, dass wenn ich so etwas rufe:
Ich bekomme diesen Fehler:
%Vor%Wer hat das jemals gesehen? Vielleicht fehlen mir gerade die richtigen Migrationsoptionen?
Meine Annahme ist, dass der PSC den Speicher aufgrund der Fehlermeldung nicht ändern kann, indem er die Optionen auf null setzt. Sie müssen wahrscheinlich das Wörterbuch der Optionen für den ursprünglichen Speicher abrufen und diese weiterleiten, anstatt sie auf Null zu setzen.
JA, ich habe auch diese Frage.
Ich möchte einen iCloud-Speicher in einen lokalen Speicher umwandeln.
Aber wenn Sie eine große Datenbank haben, wird es so langsam sein.
So habe ich gestern eine zweite Lösung gefunden.
Nachdem Sie die Schlüssel "com.apple.coredata.ubiquity. *" in den Metadaten entfernt haben, Du bekommst ein komplett lokales Geschäft.
Hier ist mein Code für die Lösung 2:
Es sind bereits einige Eigenschaften eingestellt:
%Vor%Und die Methode migrate:
%Vor% Dann können Sie iCloudStoreLocalVersionURL
verwenden, um den lokalen Versionsspeicher zu verwenden.
Sie können diesen lokalen Versionsspeicher als lokalen Speicher ohne Fehler verwenden.
Hinweis:
Beachten Sie die NSStoreUUIDKey
in den Metadaten,
Sie können es optional für den neuen Speicher ersetzen.
Zu mike:
Das Problem ist:
Wenn wir beim Hinzufügen eines iCloud-Stores die vollständigen iCloud-Optionen verwenden, werden wir alles richtig machen, aber es bleibt ein iCloud-Store. Hier möchten wir einen iCloud-Store in einen lokalen Laden umwandeln.
Wenn wir einige Optionen außer den iCloud-Optionen hinzufügen, erhalten wir einen Fehler und können keine Änderungen in diesem Geschäft speichern.
Also ist Ihre Antwort nicht für dieses Problem.
Das funktioniert für mich ganz gut. Ich verwende NSPersistentDocument und rufe diese Methode auf, wenn der Benutzer die Menüoption Speichern unter auswählt. Es ist auch erwähnenswert, dass ich meine eigenen Metadaten auf die Datei gesetzt habe, um zu wissen, ob sie über iCloud synchronisiert wird oder nicht. Das müssen Sie wissen, um die richtigen Optionen beim Einrichten des Pacs vor dem eigentlichen Öffnen des Shops selbst zu übergeben. Ich glaube nicht, dass es dafür API gibt.
%Vor% Ab iOS 7 gibt es eine wesentlich einfachere und logischere Möglichkeit, Speicher zu migrieren, während iCloud ubiquity gelöscht wird. Übergeben Sie einfach die Option NSPersistentStoreRemoveUbiquitousMetadataOption
:
Dies wird den Speicher auf die lokale URL migrieren und alle iCloud-Metadaten löschen, im Wesentlichen was @frogcjn manuell getan hat.
Tags und Links objective-c cocoa core-data icloud migration