领域迁移未称为

Wiingaard

我已经向领域对象添加了一个值(已向WeekReport对象添加了动态var inspectorName =“”),并且我试图迁移领域数据库以包含该值。我试图这样调用迁移块func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil)

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    print("HERE")
    Realm.Configuration.defaultConfiguration = Realm.Configuration(
        schemaVersion: 1,
        migrationBlock: { migration, oldSchemaVersion in
            if (oldSchemaVersion < 1) {
                migration.enumerateObjects(ofType: WeekReport.className()) { oldObject, newObject in
                    newObject!["inspectorName"] = ""
                }
            }
    })

    return true
}

但是似乎didFinishLaunchingWithOptions在我的错误发生之前没有被调用。

在多视图控制器中,我有let realm = try! Realm()在运行应用程序时,Xcode在这里中断:

“由于以下错误,需要迁移:-已添加属性'WeekReport.inspectorName'。” 由于以下错误,UserInfo = {NSLocalizedDescription = Migration是必需的:-已添加属性'WeekReport.inspectorName'。,错误代码= 10}:文件/Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang- 800.0.63 / src / swift /

为何不称为迁移blick?从未打印过“ HERE” ...

是否应该在视图控制器中以其他方式定义领域?

岸川胜美

如果您将let realm = try! Realm()视图控制器作为实例变量编写,它将在application: didFinishLaunchingWithOptionsStoryboard之前被调用要解决此问题,可以lazy var realm = try! Realm()改用。lazy推迟创建实例变量,直到访问该变量为止。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章