在 Swift Core Data 应用程序中哪里添加`addPersistentStoreWithType:configuration:URL:options:error:`?

问题描述 投票:0回答:2

我从基于 Core Data 文档的模板创建了一个新的 Swift 应用程序。该应用程序工作正常,但对于新版本,我想添加轻量级迁移

在我读到的核心数据文档中,我只需要在

addPersistentStoreWithType:configuration:URL:options:error:
方法中添加一些选项,但实际上没有提示 where 这个方法被调用/添加。

我有

Document
类,它派生自
NSPersistentDocument
以及应用程序委托。

  • 我需要在项目中添加什么才能进行轻量级迁移?
  • addPersistentStoreWithType:configuration:URL:options:error:
    方法在哪里调用的?
swift macos core-data swift2 core-data-migration
2个回答
3
投票

它(隐藏)在

NSPersistentDocument
的文档中。

您可以通过重写

managedObjectModel
属性和
configurePersistentStoreCoordinator(for:ofType:modelConfiguration:storeOptions:)
方法来自定义持久性堆栈的架构。例如,您可能希望这样做来指定特定的托管对象模型。

覆盖

func configurePersistentStoreCoordinator(for url: URL, ofType fileType: String, modelConfiguration configuration: String?, storeOptions: [String : AnyObject]? = [:])
。将您的选项添加到
storeOptions
并致电 super。


0
投票

参见苹果文档

在 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 应用程序,对于基于文档的应用程序,您可以在此处

找到答案
© www.soinside.com 2019 - 2024. All rights reserved.