【发布时间】:2013-10-27 10:29:30
【问题描述】:
我正在重写一个使用 Core Data 的 iOS 应用程序,但是当前的对象模型已经过时,并不能真正反映当前版本的应用程序如何使用该模型。例如,有几个实体表示颜色之类的东西,我想将它们简化为单个 NSString 属性*。
我知道轻量级迁移无法应对这种情况,我不确定是否可以对当前模型进行版本化并使用手动迁移。创建一个全新的 Core Data 模型然后手动将所有现有项目迁移到新模型中会更容易吗? FWIW,通常少于 100 个项目,而且我的应用不使用 iCloud 同步,因此迁移到新模型应该相当快。
*我目前有一个具有色相、饱和度和亮度的实体,但我计划使用单个十六进制代码字符串(我现在只使用 RGB 颜色)。
【问题讨论】:
-
不,您不能为此方法创建新模型版本。当您实例化您的 NSManagedObjectModel 时,您将获得它的当前版本(在您的情况下,它将是具有十六进制颜色字符串属性的新模型)。如果您确实知道如何执行,我建议您执行手动迁移 - 这会更简单并且会节省大量时间,因为手动迁移是显而易见的且易于调试的过程,而使用映射模型进行迁移则不是。
标签: ios objective-c core-data