我从基于 Core Data 文档的模板创建了一个新的 Swift 应用程序。该应用程序工作正常,但对于新版本,我想添加轻量级迁移。
在我读到的核心数据文档中,我只需要在
addPersistentStoreWithType:configuration:URL:options:error:
方法中添加一些选项,但实际上没有提示 where 这个方法被调用/添加。
我有
Document
类,它派生自 NSPersistentDocument
以及应用程序委托。
addPersistentStoreWithType:configuration:URL:options:error:
方法在哪里调用的?它(隐藏)在
NSPersistentDocument
的文档中。
您可以通过重写
属性和managedObjectModel
方法来自定义持久性堆栈的架构。例如,您可能希望这样做来指定特定的托管对象模型。configurePersistentStoreCoordinator(for:ofType:modelConfiguration:storeOptions:)
覆盖
func configurePersistentStoreCoordinator(for url: URL, ofType fileType: String, modelConfiguration configuration: String?, storeOptions: [String : AnyObject]? = [:])
。将您的选项添加到 storeOptions
并致电 super。
参见苹果文档
在 Swift 中创建选项并调用 addPersistentStoreWithType
let options = [NSMigratePersistentStoresAutomaticallyOption:true,NSInferMappingModelAutomaticallyOption:true]
try coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: options)
这是在
lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator
中完成的appDelegate:(didFinishLaunchingWithOptions)
编辑说:这仅适用于 iOS 应用程序,对于基于文档的应用程序,您可以在此处
找到答案