如何将属性添加到由数据模型文件创建的NSManagedObject子类?

时间:2014-04-09 12:52:32

标签: ios objective-c core-data nsmanagedobject

我有一个基本的笔记应用程序,我正在学习使用Core Data,所以我学到的是现在所有属于我的MVC的模型,如Note.h和{{现在将通过实体通过Core Data的数据模型文件创建具有注释的所有数据的1}}。所以我创建了一个Note.m实体,我给它一个Note NSString属性并创建了一个content子类(就像他们在斯坦福视频中讲授的那样),但我&#39 ;我想知道现在我是否要为Note模型添加一个新属性我该怎么做?我应该手动将其添加到Core Data的数据模型文件中,还是手动添加到NSManagedObjectNote.h文件中?这个通过编辑器的创作让我感到困惑。

3 个答案:

答案 0 :(得分:2)

更改Core Data实体后,您必须重新创建托管对象子类 文件来自"编辑 - >创建NSManagedObject子类......"从Xcode菜单。手动 编辑这些文件只会带来引入错误的危险。

或者,使用"mogenerator"之类的工具自动创建和更新文件。 请参阅(例如)Mogenerator and Xcode 4 advantages/disadvantages以了解" mogenerator"和内置的Xcode 文件生成。

答案 1 :(得分:0)

是的,您应该手动将其添加到Core Data的数据模型文件中,而不是手动添加到Note.hNote.m文件中。

答案 2 :(得分:0)

您可以通过不同的方式实现它...最简单的方法是将您的属性添加到您的实体然后1)手动将新属性插入您的Note子类或2)使用Xcode执行此操作你。

如果您按照第二种方式使用编辑器 - >创建NSManagedObject子类... ,Xcode将要求您覆盖现有文件。因此,如果您对这些文件进行了自定义,它们就会消失......

我的个人品味。我更喜欢第一种方式。手动一个。

一个重要的注意事项如下。如果您已经有一个已经设置了持久存储的应用程序,然后您更改了模型,那么当您重新启动应用程序时,它将崩溃,因为两个模型之间存在差异。解决方案是或删除应用程序并再次运行或使用轻量迁移。例如how-to-perform-a-lightweight-core-data-migration