2 Stimmen

SQLite-Kerndaten sichern und wiederherstellen iphone

Ich arbeite an einem Projekt, bei dem ich eine Instanz meiner App-Sqllite-Datei erstelle und sie so einrichte, dass der Benutzer die Sicherungsdatei per E-Mail an seine/ihre eigene E-Mail senden kann. Ich habe gesehen, dies auf iStudiezPro getan und es funktioniert magisch.

Ich kann die E-Mail dazu bringen, die App-Datei zu öffnen und wiederherzustellen. Das Problem ist, dass die App neu geladen werden muss, damit der Persistence Store aktualisiert werden kann. Wenn ich zur App zurückkehre, tue ich dies:

[persistentStoreCoordinator release];
persistentStoreCoordinator = nil;

[managedObjectContext release];
managedObjectContext = nil;

[primaryUserManagedObject release];
primaryUserManagedObject = nil;

[self managedObjectContext];

Ich muss nur einen Weg finden, damit die Anwendung den Kerndatenstapel neu aufbauen kann, während die Anwendung läuft. Jede Hilfe würde geschätzt werden.

2voto

TechZen Punkte 64117

Die einfachste Lösung wäre, den Kontext zu speichern und dann die gespeicherte Datei mit den Standardmethoden des fileManagers in den Dokumentenordner zu kopieren. Wenn Sie sicherstellen, dass es keine laufenden Kerndatenoperationen gibt, glaube ich nicht, dass Sie Probleme mit der Korruption haben werden.

Wenn Sie zusätzlichen Schutz wünschen, geben Sie vor dem Kopieren den managedObject-Kontext und dann den persistenten Speicherkoordinator frei und löschen Sie ihn. Wenn der Kopiervorgang abgeschlossen ist, bauen Sie den Stack wieder auf. Es gibt keinen Grund, die Anwendung selbst neu zu starten. Wahrscheinlich müssen Sie ein spezielles Objekt zur Verwaltung des Core Data-Stacks erstellen, damit dieser ein- und ausgeschaltet werden kann.

0voto

Duncan Groenewald Punkte 7788

Ich habe eine Beispiel-App hochgeladen, die Sicherungs- und Wiederherstellungsfunktionen auf verschiedene Arten bietet, einschließlich lokaler Sicherungen, Kopieren von Sicherungen in und aus iCloud, E-Mail-Sicherungen, Importieren aus E-Mails und Kopieren von Dateien über iTunes. Unter dem unten stehenden Link finden Sie ein Video, das diese Funktionen demonstriert, und Sie können die Beispielanwendungen von der Website herunterladen.

http://ossh.com.au/design-and-technology/software-development/sample-library-style-ios-core-data-app-with-icloud-integration/sample-apps-explanations/backup-files/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X