Jestem całkiem nowy w rozwoju ios.Swift Realm, załaduj wstępnie wypełnioną bazę danych we właściwy sposób?
śledzę ten migration example użyć pre-zaludnionych bazy danych i zmienić kod trochę
Oto ostateczny kod używam na 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)
}
}
jestem testowania tego w rzeczywistym urządzeniu .
Działa, ale zgodnie z logiką kodu, zawsze zostanie zresetowany do wstępnie wypełnionej bazy danych. Jest to weryfikowane: dane są resetowane po restarcie aplikacji.
Próbowałem moveItemAtPath
zamiast copyItemAtPath
. błąd uprawnień
Próbowałem usunąć wstępnie wypełniony plik bazy danych po skopiowaniu. błąd uprawnień
Próbowałem użyć wstępnie wypełnionego pliku bazy danych jako domyślnej ścieżki konfiguracji obszaru. Wystąpił również błąd.
oh Tak, to byłoby to sposób. btw, to jest 'fileExistsAtPath' – Jesse
@ TiM dlaczego' plik istnieje' zawsze zwraca true? – aaisataev
@aaisataev Po utworzeniu pliku nie trzeba ponownie uruchamiać tego samego kodu zastępczego. Więc ma to sens, że po raz pierwszy zwróci wartość "true". :) – TiM