代码之家  ›  专栏  ›  技术社区  ›  jamone

iPhone核心数据如何在更改数据模型后更新nsmanagedObjects.h&.m

  •  3
  • jamone  · 技术社区  · 14 年前

    我做了一个数据模型,现在我做了第二个版本。映射到该数据模型的所有生成的nsmanagedObject都是版本1。有没有什么方法可以在不删除它们的情况下将它们更新到v2,然后说让它们重新生成?

    1 回复  |  直到 14 年前
        1
  •  5
  •   Marcus S. Zarra    14 年前

    如果模型有两个版本,则需要在两个版本之间创建映射模型,或者如果更改足够简单,可以解决核心数据,则需要启用自动迁移。

    我建议查看苹果关于核心数据迁移的文档。

    更新

    我正在使用自动迁移。但是假设我在v1中有个人条目,它只是姓氏和名字。在第2版中,我增加了出生日期。在建立v1的数据模型之后,我告诉Xcode生成nsmanaged对象(在本例中是person.m),现在我已经建立了自动迁移的v2模型。如何更新person.m以添加dob而不删除,然后重新添加,或者手动添加dob?

    这个 NSManagedObject 如果您想添加属性(而不仅仅是属性),那么只需在您的 被管理对象 子类。

    更新

    我强烈推荐的另一种选择是使用mogenerator,而不是内置的代码生成器。模型更改后,mogenerator将保持文件的最新状态。