8

在 XCode 中设计核心数据模型时,可以通过以下方式自动生成 NSManagedObject 子类定义(.m 和 .h 文件)

  1. 选择实体
  2. 从EDITOR菜单中选择“创建 NSManagedObject 子类”

之后,你可能会在这些类中添加大量代码,如果之后由于某种原因必须大量修改数据模型设置怎么办?为了在数据模型上反映这些变化,有没有自动的方法来做到这一点?或者您必须手动完成所有操作。

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

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

4

3 回答 3

6

你遇到了一个常见的问题。暂时你还停留在用 Xcode 创建托管对象子类的方法上。知道了这一点,您可以:

  • 围绕它进行设计

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

  • 不要使用 Xcode

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

于 2012-08-27T18:09:49.077 回答
1

Apple 似乎已经解决了 XCode 7 的问题:现在它会自动创建实体和实体的类别及其核心数据属性。重新生成时,它只会更新类别,而不会损坏实体类中的自定义代码。看到这个链接

于 2016-03-31T13:18:55.777 回答
0

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

于 2015-01-22T03:47:15.410 回答