我對ios開發很新穎。Swift Realm,以正確的方式加載預填充數據庫?
我遵循這個migration example使用預填充數據庫,並更改代碼有點
這裏是我的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)
}
}
我在真實的設備測試這種使用最終代碼。
它可以工作,但根據代碼邏輯,它將始終重置爲預填充數據庫。這已驗證:數據在應用程序重新啓動後重置。我試過moveItemAtPath
而不是copyItemAtPath
。權限錯誤
我試圖在複製後刪除預填充的數據庫文件。權限錯誤
我試圖使用預先填充的數據庫文件作爲領域的默認配置路徑。錯誤也會發生。
哦,是的,這將是一個辦法。順便說一句,它是'fileExistsAtPath' – Jesse
@TiM爲什麼'文件存在'總是返回true? – aaisataev
@aaisataev創建文件後,不需要再次運行相同的替換代碼。所以有意義的是,它會在第一次之後總是返回「true」。 :) – TiM