2017-03-31 2 views
0

Ich gebe ein Update mit ein paar Änderungen an den Werten in CoreData. Das Schema ist unverändert (es sind nur JSON-Strings), aber das JSON hat es. Die Daten sind trivial, daher denke ich, dass es am besten ist, sie einfach zu entfernen. Was ist der beste Weg, dies zu tun?iOS Force Clear CoreData auf App Update

+0

Wenn Sie eine Möglichkeit haben, den ersten Lauf Ihres App-Updates zu identifizieren, können Sie einfach den Backing-SQLite-Speicher löschen. Vielleicht sogar etwas so einfaches wie das Ändern des Namens des SQLite-Speichers, der in der aktualisierten Version verwendet wird, und das Löschen des alten, wenn er beendet wird. –

+0

Ja, ich dachte, ich könnte nur eine Nummer in NSUserDefaults speichern, und wenn es sich um einen erwarteten Wert unterscheidet, löschen Sie die Daten und aktualisieren Sie die Benutzereinstellungen. Ich bin mir nicht sicher, wie ich die Daten löschen soll! – Jacob

+0

Sehen Sie sich Ihren Code für die Methode 'addPersistentStore' in einer Instanz von' NSPersistentStoreCoordinator' an. Diese Methode hat einen Parameter 'at storeURL: URL?'. In dieser URL werden Ihre Daten gespeichert. Wenn Sie die verwendete Datei löschen oder eine neue Datei verwenden, sind die alten Daten verloren. –

Antwort

0

Der schnellste Weg ist das Löschen der SQLite-Datei. Aber ich bevorzuge es, Daten von Tabellen einzeln zu löschen, weil ich auf diese Weise sicher sein kann, was ich lösche. Nachdem Sie die Tabellen gelöscht haben, ist es offensichtlich, dass Sie ein Flag in DB oder UserDefaults beibehalten müssen, um sicherzustellen, dass Sie den Prozess nicht wiederholen.

Verwandte Themen