IOS 在现有核心数据上添加更多关系后,如何利用核心数据?
IOS How to make use of core data after adding some more relationship to existing core data?
我决定通过添加少量关系 (2-3) 关系来更改我的核心数据结构。如何切换到新的核心数据堆栈但仍保留旧的实现(方法、数据……)。我们是否需要创建新的 xcdatamodel
以及如何切换到新的 xcdatamodel?
非常感谢任何帮助
如果您使用的是已在 Apple Store 上的现有应用程序,那么创建新的数据模型非常重要
要创建新的数据模型,请完成以下步骤:
- 打开Xcodeproject/workspace
- Select 你的数据模型文件
- 转到“菜单”并单击“编辑”菜单。单击添加->添加模型版本。
- 为您命名新模型版本,select以前的活动版本作为基本模型。
- 再次 select
.xcdatamodeld
,然后转到文件导航器。将新模型标记为当前版本。
- 开始处理新的数据库模型。
希望这对您有所帮助:)
当您更改数据模型时,您还需要将更改通知 CodeData。为此,需要一个“lightWeightMigration”。
为了告诉 Core Data 我们要执行轻量级迁移,我们需要在 startCoreData() 方法中配置持久存储协调器时设置两个属性。
首先,NSMigratePersistentStoresAutomaticallyOption 需要为真,这会告诉 Core Data 在模型更改时升级其 SQLite 数据库。
其次,NSInferMappingModelAutomaticallyOption 也需要为真,它告诉 Core Data 在模型更改时找出差异,并在可能的情况下应用合理的默认值
像这样创建 optionsDictionary :
让 mOptions = [NSMigratePersistentStoresAutomaticallyOption: true,
NSInferMappingModelAutomaticallyOption: true]
在 coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: mOptions) 中传递这个 optionsDictionary
一切顺利!
我决定通过添加少量关系 (2-3) 关系来更改我的核心数据结构。如何切换到新的核心数据堆栈但仍保留旧的实现(方法、数据……)。我们是否需要创建新的 xcdatamodel
以及如何切换到新的 xcdatamodel?
非常感谢任何帮助
如果您使用的是已在 Apple Store 上的现有应用程序,那么创建新的数据模型非常重要
要创建新的数据模型,请完成以下步骤:
- 打开Xcodeproject/workspace
- Select 你的数据模型文件
- 转到“菜单”并单击“编辑”菜单。单击添加->添加模型版本。
- 为您命名新模型版本,select以前的活动版本作为基本模型。
- 再次 select
.xcdatamodeld
,然后转到文件导航器。将新模型标记为当前版本。 - 开始处理新的数据库模型。
希望这对您有所帮助:)
当您更改数据模型时,您还需要将更改通知 CodeData。为此,需要一个“lightWeightMigration”。 为了告诉 Core Data 我们要执行轻量级迁移,我们需要在 startCoreData() 方法中配置持久存储协调器时设置两个属性。 首先,NSMigratePersistentStoresAutomaticallyOption 需要为真,这会告诉 Core Data 在模型更改时升级其 SQLite 数据库。 其次,NSInferMappingModelAutomaticallyOption 也需要为真,它告诉 Core Data 在模型更改时找出差异,并在可能的情况下应用合理的默认值 像这样创建 optionsDictionary : 让 mOptions = [NSMigratePersistentStoresAutomaticallyOption: true, NSInferMappingModelAutomaticallyOption: true] 在 coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: mOptions) 中传递这个 optionsDictionary 一切顺利!