在XCode中设计核心数据模型时,您可以通过
自动生成NSManagedObject子类定义(.m和.h文件)之后,您可以在这些类中添加大量代码,如果您因此之后因某种原因需要修改数据模型设置会怎么样?要在数据模型上反映这些变化,有没有自动的方法来做到这一点?或者你必须手动完成所有事情。
目前,如果我尝试再次(自动)从EDIT菜单重新创建这些类定义,它将替换所有当前文件。所有添加的代码都将消失。
我真的希望未来的Xcode版本可以添加一个智能功能:自动更新默认的类定义而不会丢失添加的工作。也许我太懒了。 :)
答案 0 :(得分:6)
你遇到了一个常见的问题。你几乎一直坚持使用Xcode创建托管对象子类的方式。知道了,你可以:
围绕它设计
对于简单的情况,您可以使用Categories向您的NSManagedObject
子类添加功能(尽管不是状态)。每次数据模型更改时,类别文件中的代码显然都不会被覆盖。
请勿使用Xcode
Mogenerator是一个非常好的工具,旨在解决这个问题。它为每个实体而不是一个实体创建两个类,允许Xcode在管理另一个实体时管理一个。
答案 1 :(得分:1)
Apple似乎已经解决了XCode 7的问题:现在它自动创建实体和具有核心数据属性的实体类别。重新生成时,它只更新类别,使实体类中的自定义代码保持不受干扰。见link
答案 2 :(得分:0)
您可以创建具有不同名称的类,并将生成的字段粘贴到旧类
中