首页 文章

领域迁移失败并出现错误:需要迁移,或者已使用不同的架构版本打开了对象

提问于
浏览
2

这是迁移的代码(在didFinishLaunchingWithOptions中){

Realm.Configuration.defaultConfiguration = Realm.Configuration(
        schemaVersion: 3,
        migrationBlock: { migration, oldSchemaVersion in
            // The enumerateObjects:block: method iterates
            // over every 'Person' object stored in the Realm file
            migration.enumerate(User.className()) { oldObject, newObject in

                if oldSchemaVersion < 1 {
                    newObject!["crashTest"] = ""
                }
                if oldSchemaVersion < 2 {

                }
            }
    }) let realm = try!Realm()

这是错误:

致命错误:'试试!'表达式意外地引发了错误:Error Domain = io.realm Code = 0“由于以下错误,需要迁移: - 属性'crashTest'已被添加到最新的对象模型中 . ” UserInfo = {NSLocalizedDescription =由于以下错误而需要迁移: - 已将属性'crashTest'添加到最新对象模型 . }:file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-700.1.101.15 /src/swift/stdlib/public/core/ErrorType.swift,第50行

1 回答

  • 0

    如果您仅在本地开发中,我建议您重置您的领域数据库,而不是进行迁移 . 您可以通过删除模拟器或设备上的应用程序来重置数据库 . 或者,您可以尝试使用NSFileManager在访问数据库之前删除领域文件 . let defaultPath = Realm.Configuration.defaultConfiguration.fileURL?.path try! FileManager.default.removeItem(atPath: defaultPath!)

相关问题