ios - 使用Core Data轻量级迁移考虑多个数据模型版本

标签 ios core-data core-data-migration

我是Core Data迁移的新手。我阅读了有关轻量级迁移的教程。场景是这样的:

  • 我创建了一个数据模型,它是版本1。
  • 因此,我必须在我的实体中添加一个属性,我使用轻量级迁移来完成此操作。现在,数据模型为版本2。
  • 不幸的是,我需要再次添加另一个属性。我仍然使用轻量级迁移来执行此操作,现在数据模型为版本3。

  • 如果我的用户经常更新,那就可以了。但是,如果我的用户拥有数据模型版本1,并将应用程序直接更新为数据模型版本3,该怎么办?我是否需要编写代码来处理从v1到v3的迁移,或者因为我使用了轻量级迁移,它会自动为我处理吗?

    最佳答案

    您的应用程序必须能够处理可能发生的所有可能的迁移。如果当前版本是第三版本,则必须有可能将所有以前的版本升级到版本3。

    这并不意味着您实际上必须为迁移编写代码。如果可以进行自动的轻量级迁移,那么它将无需任何自定义迁移代码即可运行。是否可行取决于模型的变化方式。如果可以通过轻量级自动迁移进行v1-> v3迁移,则可以使用它。如果自动轻量级迁移无法实现,则需要自己进行处理。答案取决于,而仅取决于版本1与版本3的相似程度,与还存在版本2的事实无关。

    关于ios - 使用Core Data轻量级迁移考虑多个数据模型版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27832542/

    相关文章:

    ios - 使用 CFTreeContext 信息对象将 NSString 数据存储在 CFTreeRef 中是一种好习惯吗

    ios - 点击按钮更改状态栏颜色

    ios - 一个 View Controller 中的两个表

    ios - 将 JSON 数据存储到 Core Data 的最佳方式

    ios - 我如何对核心数据迁移进行单元测试?

    objective-c - 迁移实体和父实体

    ios - Xcode核心数据: Change existing XML to Sqlite (NSXMLStoreType to NSSQLiteStoreType)

    ios - 在 ios 7 iPhone 中使用 sizeWithAtrributes 时,方法调用参数过多错误

    objective-c - NSUndoManager 会撤消后台发生的更改吗?

    swift - UITableView CoreData - 排序描​​述符不影响标题