【发布时间】:2017-06-03 08:04:56
【问题描述】:
我已向领域对象添加了一个值(我已向 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=由于以下错误需要迁移: - 已添加属性“WeekReport.inspectorName”。错误代码=10}:文件 /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-800.0.63/src/swift/
为什么没有调用迁移 blick? 从来没有打印过“HERE”...
我应该在我的视图控制器中以不同的方式定义领域吗?
【问题讨论】: