Swift 4 in Xcode 9 - 如何轻量级迁移Core Data?
Swift 4 in Xcode 9 - How to lightweight Core Data migration?
我的核心数据将更新一个属性,为了避免崩溃,我首先添加了一个新的模型版本,此外:
这个问题最关键的地方在于:
coordinator!.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: url, options: nil)
选项:
代码中的 nil
options:[NSMigratePersistentStoresAutomaticallyOption:true, NSInferMappingModelAutomaticallyOption: true]
但是在我的appdelegate.swift中,我找不到任何“persistentStoreCoordinator”,所以我可以将CoreData迁移到我的版本?
You can achieve like this:
let container = NSPersistentContainer(name: "YourDbModelName")
let description = NSPersistentStoreDescription()
description.shouldMigrateStoreAutomatically = true
description.shouldInferMappingModelAutomatically = true
container.persistentStoreDescriptions = [description]
Gulshan Kumar 的解决方案很好。在我的例子中,它不起作用,因为容器已经有一个描述对象,并且设置
container.persistentStoreDescriptions = [description]
有效地删除了那个对象,导致模型没有加载。我用了
container.persistentStoreDescriptions.append(description)
我的核心数据将更新一个属性,为了避免崩溃,我首先添加了一个新的模型版本,此外:
这个问题最关键的地方在于:
coordinator!.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: url, options: nil)
选项:
代码中的 niloptions:[NSMigratePersistentStoresAutomaticallyOption:true, NSInferMappingModelAutomaticallyOption: true]
但是在我的appdelegate.swift中,我找不到任何“persistentStoreCoordinator”,所以我可以将CoreData迁移到我的版本?
You can achieve like this:
let container = NSPersistentContainer(name: "YourDbModelName")
let description = NSPersistentStoreDescription()
description.shouldMigrateStoreAutomatically = true
description.shouldInferMappingModelAutomatically = true
container.persistentStoreDescriptions = [description]
Gulshan Kumar 的解决方案很好。在我的例子中,它不起作用,因为容器已经有一个描述对象,并且设置
container.persistentStoreDescriptions = [description]
有效地删除了那个对象,导致模型没有加载。我用了
container.persistentStoreDescriptions.append(description)