如何将'Realm'数据库预加载到iOS swift3?

时间:2017-06-05 13:08:18

标签: ios swift3 realm

我正在尝试在我的应用程序中实现Realm数据库,我有一些带有一些Preloaded数据的realm数据库。我搜索了很多堆栈溢出资源,但没有取得任何成功。

到目前为止,我已经完成了以下步骤:

  1. 将Realm文件复制到我的应用程序包中
  2. 在app delegate中添加了以下代码:

    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. 但这不起作用,请提供一些解决方案。

    注意:我不想迁移我的数据库。

    提前致谢

2 个答案:

答案 0 :(得分:5)

下面的代码片段非常适合我在首次启动应用时加载预装的Realm实例:

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)")
    }
}

答案 1 :(得分:0)

在Xcode Project Navigator中选择领域文件,然后打开文件检查器窗格,并选中“ Target Membership”框作为当前目标。您的代码已经可以使用!