2017-06-05 6 views
2

私は自分のアプリケーションでRealmデータベースを実装しようとしていますが、私はそこにいくつかのプリロードされたデータを持つrealmデータベースを持っています。私は多くのスタックオーバーフローリソースを検索しましたが、成功しませんでした。「Realm」DBをiOS swift3にプリロードする方法は?

これまでのところ、今、私が行っている、次の手順:

  1. コピー私のアプリのバンドルへのレルムファイル
  2. アプリデリゲートで
  3. 追加次のコード:

    path = Bundle.main.path(forResource: "data", ofType: "realm") 
    var config = Realm.Configuration(fileURL: NSURL(fileURLWithPath:  path!)) 
    config.readOnly = true 
    
    // Open the Realm with the configuration 
    let realm = try! Realm(configuration: config) 
    

しかし、これは動作しません、それにいくつかの解決策を提供してください。

注:私はデータベースを移行したくありません。事前

答えて

3

おかげで、以下のコードの一部は、私のアプリの最初の起動時にプリロードされたレルムのインスタンスをロードするために私のために完璧に動作します:

let defaultPath = Realm.Configuration.defaultConfiguration.fileURL?.path 
let path = Bundle.main.path(forResource: "default", ofType: "realm") 
if !FileManager.default.fileExists(atPath: defaultPath!), let bundledPath = path { 
    do { 
     try FileManager.default.copyItem(atPath: bundledPath, toPath: defaultPath!) 
    } catch { 
     print("Error copying pre-populated Realm \(error)") 
    } 
} 
+0

それは、同様に私のために感謝を働きました回答。 –

+0

「Person」という名前の新しいモデルを追加しようとすると、そのモデルが追加されます。私はレルムブラウザでそれを開いたとき、元々そこにあった「医学」という1つのモデルしか表示していません。あなたは、領域の中に何が起こっているかについて何か考えていますか? –

+0

あなたは 'letm = try! Realm() 'ifブロックの後ろに?このコードはどこに置いたのですか?これはAppDelegateの 'funcアプリケーション(didFinishLaunchingWithOptions:)'にあるはずです –

関連する問題