2016-08-07 19 views
0

Ich habe eine JSON-Datei. Die Größe beträgt etwa 20 MB.CoreData SQLite-Datei in NSBundle

Projekt 1. Also habe ich ein Projekt erstellt und Daten aus dieser JSON-Datei in Core Data importiert. Core Data erstellt die folgenden SQLite-Dateien, die gesamteDataList.sqlite, die gesamteDataList.sqlite-shm und die gesamteDataList.sqlite-wal. Es dauerte 10 Minuten, um den gesamten Inhalt von JSON in die Kerndaten und die einmalige Erstellung der Datei zu kopieren.

Jetzt in Project2. Ich habe alle drei Dateien in MainBundle kopiert. Ich muss .xcdatamodeld erstellen, als ob ich es direkt aus Project1 kopiere, es findet die .momd-Datei nicht.

NSURL *storeURL = [[NSBundle mainBundle] URLForResource:@"entireDataList" withExtension:@"sqlite"]; 
    store =[[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedModel]]; 
    NSError *error; 
[store addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]; 

So wird storeURL von NSBundle main ist ein zuverlässiger Ansatz, bei dem entireDataList.sqlite, entireDataList.sqlite-shm und entireDataList.sqlite-wal-Dateien gespeichert sind?

Im Allgemeinen sind sie in Dokumente Verzeichnis.

+0

Also sollen diese Seeddaten die App starten, aber sie können dann vom Benutzer editiert und die Änderungen gespeichert werden? – Wain

+0

Ja, es ist wie kein Benutzereintrag .. Ich c, wo Sie dies auch zeigen .. d. H. Ich kann lesen, aber nicht schreiben? – andyPaul

Antwort

0

Generell sollten Sie beim ersten Start die Dateien aus dem Bundle in den Dokumentenordner kopieren und von dort aus öffnen. Dieser Ansatz ermöglicht Ihnen dann, den Inhalt der Dateien zu bearbeiten und die Aktualisierungen zu speichern.