在Swift中使用带有Realm的deleteRealmIfMigrationNeeded时崩溃

Roc*_*ith 5 realm swift

我正在做以下内容didFinishLaunchingWithOptions:

let config = Realm.Configuration(
  schemaVersion: 0,
  deleteRealmIfMigrationNeeded: true
)
Realm.Configuration.defaultConfiguration = config

let realm = try! Realm()
Run Code Online (Sandbox Code Playgroud)

基本上,在开发时,我不想担心迁移,只是想在架构发生变化时清除数据库.我的理解是,这正是deleteRealmIfMigrationNeeded为了什么.

问题是,有时它在尝试初始化Realm时崩溃并出现以下错误:

致命错误:'试试!' 表达式意外地引发了错误:错误Domain = io.realm Code = 5"path at path'/ Users/rock/Library/Developer/CoreSimulator/Devices/D626848E-14D5-47AC-8FFB-9B67D024DEF1/data/Containers/Data/Application /6F71103C-9E10-4131-BED4-D96445FABA52/Documents/default.realm'不存在."

default.realm文件被删除了,大概是因为deleteRealmIfMigrationNeeded,但是在用最后一行初始化Realm时没有重新创建(正如我所期望的那样).

有趣的是,如果我手动删除default.realm.lock然后重新启动应用程序,它将工作.

我做错了吗?这可能是个错误吗?(我正在使用Realm Swift 2.4.1)

Mic*_*ael 18

我刚遇到同样的问题,我的解决方案是关闭Realm浏览器,如果你打开它.

干杯!

  • 哈哈,快到 2020 年了,这个问题仍然存在。谢谢!我只是担心当我的客户安装新更新时可能会发生一些事情。 (3认同)
  • 这样就可以了。非常不方便。 (2认同)