更新Core-Data Model Entity和支持的NSManagedobject子类

时间:2014-07-12 00:27:54

标签: ios objective-c core-data core-data-migration

假设我有一个具有3个属性的模型实体 然后,我为该实体生成NSManagedobject子类,并将自定义方法以及属性添加到此类中 在稍后的一天,我为这个实体添加了一些新的属性。

目标
我希望支持的NSManagedobject子类能够反映这些新属性。

问题
我看到的唯一解决方案是在Xcode中{Editor->创建NSManagedobject Subclass},但这样会覆盖该类。

问题
有没有办法更新实体和支持的NSManagedobject子类而不覆盖该类。

3 个答案:

答案 0 :(得分:8)

手动编辑托管对象子类很好。 我们假设你为实体添加了一个新的字符串属性。您可以向托管对象子类添加属性:

@property (nonatomic, copy) NSString *myAttribute;

并将其标记为动态:

@dynamic myAttribute;

完成!让Xcode生成类旨在提供起点。它没有做任何超级特殊的事情来将你的财产绑定到实体属性。

答案 1 :(得分:3)

这是您经常面对Core Data的问题。您显然可以执行@quellish建议并手动更改文件,但这是一种简单的方法,可以将自定义行为添加到NSManagedObject类,并保留自动生成NSManagedObject .m和。 h文件是使用类别。

我通常会在MyNSManagedObject (Management)这样的类别中添加所有自定义行为,所以每当我更新模型中的属性时,我只需使用模型编辑器重新生成父文件,并在类别中重新生成所有自定义代码保持不变。

答案 2 :(得分:0)

你可以这样做:

选择"创建NSManagedObject子类......"来自Core Data编辑器菜单 删除并重新创建更新模型的实现文件。

然后,您将删除已有的文件,并将创建新文件。实际上我们心爱的Xcode IDE建议我们这样做,如附带的屏幕截图所示。Screenshot

相关问题