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

在XCode中devise核心数据模型时,可以自动生成NSManagedObject子类定义(.m和.h文件)

  1. select实体
  2. EDITOR菜单中select“创buildNSManagedObject子类”

之后,你可以在这些类中添加很多代码,如果之后由于某种原因必须修改数据模型设置呢? 为了在数据模型上反映这些变化,是否有自动的方式来做到这一点? 或者你必须手动做所有事情。

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

我真的希望未来版本的Xcode可以添加一个聪明的function:自动更新默认的类定义,而不会丢失额外的工作。 也许我太懒惰了。 🙂

你遇到了一个共同的问题。 你几乎一直坚持用Xcode创build托pipe对象子类的方式。 知道这一点,你可以:

  • 围绕它devise

    对于简单的情况,你可以使用Categories来为你的NSManagedObject子类添加function(虽然不是状态)。 每次数据模型更改时,类别文件中的代码显然是安全的。

  • 不要使用Xcode

    Mogenerator是一个漂亮的工具,旨在解决这个问题。 它为每个实体创build两个类,而不是一个,允许Xcode在pipe理另一个时pipe理其中一个。

看来苹果已经用XCode 7解决了这个问题:现在它会自动创build实体和实体的一个类别以及它的核心数据属性。 重新生成时,它只会更新类别,而不会在实体类中保留自定义代码。 看到这个链接

您可以使用不同的名称创build一个类,并将生成的字段粘贴到旧类中