修改核心数据模型后更好的方法来重新创建类定义?

时间:2012-08-27 17:56:17

标签: ios xcode core-data

在XCode中设计核心数据模型时,您可以通过

自动生成NSManagedObject子类定义(.m和.h文件)
  1. 选择实体
  2. EDITOR 菜单中选择“创建NSManagedObject子类”
  3. 之后,您可以在这些类中添加大量代码,如果您因此之后因某种原因需要修改数据模型设置会怎么样?要在数据模型上反映这些变化,有没有自动的方法来做到这一点?或者你必须手动完成所有事情。

    目前,如果我尝试再次(自动)从EDIT菜单重新创建这些类定义,它将替换所有当前文件。所有添加的代码都将消失。

    我真的希望未来的Xcode版本可以添加一个智能功能:自动更新默认的类定义而不会丢失添加的工作。也许我太懒了。 :)

3 个答案:

答案 0 :(得分:6)

你遇到了一个常见的问题。你几乎一直坚持使用Xcode创建托管对象子类的方式。知道了,你可以:

  • 围绕它设计

    对于简单的情况,您可以使用Categories向您的NSManagedObject子类添加功能(尽管不是状态)。每次数据模型更改时,类别文件中的代码显然都不会被覆盖。

  • 请勿使用Xcode

    Mogenerator是一个非常好的工具,旨在解决这个问题。它为每个实体而不是一个实体创建两个类,允许Xcode在管理另一个实体时管理一个。

答案 1 :(得分:1)

Apple似乎已经解决了XCode 7的问题:现在它自动创建实体和具有核心数据属性的实体类别。重新生成时,它只更新类别,使实体类中的自定义代码保持不受干扰。见link

答案 2 :(得分:0)

您可以创建具有不同名称的类,并将生成的字段粘贴到旧类