2009-08-14 6 views
2

Ich bin mir nicht sicher: Wenn ich sqlite3 in meiner App verwende, versende ich es mit einer fast leeren Datenbank. Im Laufe der Zeit fügt der Benutzer eine Menge hinzu, bis er ein Update installiert. Für mich sieht es so aus als würde ein Update die alte App ersetzen. Was ist der Trick, dass das Update nicht alle Daten überschreibt, die zuvor vom Benutzer eingegeben wurden? und wie wäre es mit Einstellungen in NSUSerDefaults? Bleiben sie intakt oder werden sie gelöscht, wenn der Benutzer aktualisiert?Wie kann sichergestellt werden, dass App-Updates nicht alle Benutzerdaten überschreiben?

Antwort

1

Wenn Sie die App zum ersten Mal starten, müssen Sie die Datenbankdatei aus dem Bundle in das Dokumentverzeichnis der Anwendung kopieren. Ihre Anwendung muss diese Kopie verwenden, wenn sie ausgeführt wird - nicht die im Paket. Wenn die Anwendung aktualisiert wird, bleibt die Datei im Dokumentenverzeichnis intakt und kann von der aktualisierten Version der App verwendet werden.

Werfen Sie einen Blick auf die AppDelegate in Apples SQLiteBooks iPhone-Beispielanwendung, um zu sehen, wie dies getan werden kann.

Verwandte Themen