我有一个基本的笔记应用程序,我正在学习使用Core Data,所以我学到的是现在所有属于我的MVC的模型,如Note.h
和{{现在将通过实体通过Core Data的数据模型文件创建具有注释的所有数据的1}}。所以我创建了一个Note.m
实体,我给它一个Note
NSString
属性并创建了一个content
子类(就像他们在斯坦福视频中讲授的那样),但我&#39 ;我想知道现在我是否要为Note模型添加一个新属性我该怎么做?我应该手动将其添加到Core Data的数据模型文件中,还是手动添加到NSManagedObject
和Note.h
文件中?这个通过编辑器的创作让我感到困惑。
答案 0 :(得分:2)
更改Core Data实体后,您必须重新创建托管对象子类 文件来自"编辑 - >创建NSManagedObject子类......"从Xcode菜单。手动 编辑这些文件只会带来引入错误的危险。
或者,使用"mogenerator"之类的工具自动创建和更新文件。 请参阅(例如)Mogenerator and Xcode 4 advantages/disadvantages以了解" mogenerator"和内置的Xcode 文件生成。
答案 1 :(得分:0)
是的,您应该手动将其添加到Core Data的数据模型文件中,而不是手动添加到Note.h
和Note.m
文件中。
答案 2 :(得分:0)
您可以通过不同的方式实现它...最简单的方法是将您的属性添加到您的实体然后1)手动将新属性插入您的Note
子类或2)使用Xcode执行此操作你。
如果您按照第二种方式使用编辑器 - >创建NSManagedObject子类... ,Xcode将要求您覆盖现有文件。因此,如果您对这些文件进行了自定义,它们就会消失......
我的个人品味。我更喜欢第一种方式。手动一个。
一个重要的注意事项如下。如果您已经有一个已经设置了持久存储的应用程序,然后您更改了模型,那么当您重新启动应用程序时,它将崩溃,因为两个模型之间存在差异。解决方案是或删除应用程序并再次运行或使用轻量迁移。例如how-to-perform-a-lightweight-core-data-migration