如何预加载&x27;领域';DB进入iOS swift3?

如何预加载&x27;领域';DB进入iOS swift3?,ios,swift3,realm,Ios,Swift3,Realm,我正在尝试在我的应用程序中实现领域数据库,我有一些预加载数据的领域数据库。我已经搜索了许多堆栈溢出资源,但没有获得任何成功 到目前为止,我已经完成了以下步骤: 将领域文件复制到我的应用程序包中 在应用程序代理中添加了以下代码: path = Bundle.main.path(forResource: "data", ofType: "realm") var config = Realm.Configuration(fileURL: NSURL(fileURLWithPath: path

我正在尝试在我的应用程序中实现领域数据库,我有一些预加载数据的领域数据库。我已经搜索了许多堆栈溢出资源,但没有获得任何成功

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

  • 将领域文件复制到我的应用程序包中
  • 在应用程序代理中添加了以下代码:

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

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


    提前感谢

    下面的代码非常适合我在第一次启动应用程序时加载预加载的领域实例:

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

    在Xcode项目导航器中选择领域文件,然后打开“文件检查器”窗格,并选中当前目标的目标成员资格框。你的代码已经可以工作了

    当我尝试向其中添加名为“Person”的新模型时,它会被添加。但当我在realm浏览器中打开它时,它只显示了一个最初存在的模型,即“Medicine”。你知道领域里发生了什么吗?你知道吗
    let realm=try!Realm()
    在if块之后?你把代码放在哪里了?它应该位于AppDelegate的
    func应用程序(didFinishLaunchingWithOptions:)
    在我重新安装应用程序时删除应用程序后,它不会复制默认值。领域到数据库。我不明白里面发生了什么。你试过调试代码吗?它会进入if语句吗?如果是,尝试失败了吗?是的,实际上我调试了代码,我发现路径变为零。我不明白为什么这条路是零。我已将领域文件添加到项目包中。