Ich bin ziemlich neu in der Entwicklung von ios.Swift Realm, laden Sie die vorgefüllte Datenbank auf die richtige Weise?
Ich folge dieser migration example vorausgefüllt Datenbank zu verwenden und den Code ein wenig
hier ist ich auf AppDelegate -> func application
let defaultPath = Realm.Configuration.defaultConfiguration.path!
let path = NSBundle.mainBundle().pathForResource("default", ofType: "realm")
if let bundledPath = path {
print("use pre-populated database")
do {
try NSFileManager.defaultManager().removeItemAtPath(defaultPath)
try NSFileManager.defaultManager().copyItemAtPath(bundledPath, toPath: defaultPath)
} catch {
print("remove")
print(error)
}
}
verwenden, um die endgültige Code ändern Ich teste diese in einem realen Gerät .
Es funktioniert, aber nach der Codelogik wird es immer auf die vorbelegte Datenbank zurückgesetzt werden. Dies wird bestätigt: Die Daten werden nach dem Neustart der App zurückgesetzt.
Ich versuchte moveItemAtPath
anstelle von copyItemAtPath
. Berechtigungsfehler
Ich habe versucht, die vorher gefüllte Datenbankdatei nach der Kopie zu löschen. Berechtigungsfehler
Ich habe versucht, die vorher ausgefüllte Datenbankdatei als Realm-Standardkonfigurationspfad zu verwenden. Fehler tritt auch auf.
oh, ja, wäre dies ein Weg sein. BTW, es ist 'fileExistsAtPath' – Jesse
@TiM warum' file exists 'immer wahr zurückgibt? – aaisataev
@aaisataev Sobald die Datei erstellt wurde, ist es nicht erforderlich, denselben Ersetzungscode erneut auszuführen. Es macht also Sinn, dass es nach dem ersten Mal immer "wahr" ist. :) – TiM