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)