私は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)
}
}
に私が使用して最終的なコードは、私が実際のデバイスでこれをテストしていますです。
これは動作しますが、コードロジックによれば、事前に入力されたデータベースにリセットされます。これは確認されました。データはアプリの再起動後にリセットされます。
copyItemAtPath
の代わりにmoveItemAtPath
を試しました。パーミッションエラー
コピー後に、事前設定されたデータベースファイルを削除しようとしました。パーミッションエラー
領域のデフォルト設定パスとして事前入力済みのデータベースファイルを使用しようとしました。エラーも発生します。
ああ、うん、これは方法だろう。 btw、 'fileExistsAtPath'です。 – Jesse
@TiM' file exists'は常にtrueを返しますか? – aaisataev
@aaisataevファイルが作成されたら、同じ置換コードを再度実行する必要はありません。それで、最初の後に常に「真」を返すのが理にかなっています。 :) – TiM