我正在创建一个todo应用:
我在我的项目.datamodel文件中创建了一个实体,我在实体中添加了一个名为“content”的字符串的属性,并使用“editor”>创建了NSManagedObject子类。 “创建NSManagedObject子类:
创建了这个类:
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@interface Targets : NSManagedObject
@property (nonatomic, retain) NSString * content;
@end
但现在我想要另一个“id”属性,我可以给每个todo一个id ... 我该怎么做?可以手动完成吗?因为我是从实体模型中生成的,所以我觉得我需要创建一个新的实体才能做到这一点......?
如果你可以指导我,也许通过解释它是如何工作的那就太棒了。可能我不明白这里的东西,这就是我问这个问题的原因
答案 0 :(得分:5)
鉴于Xcode似乎有一个错误阻止它正确替换你的CoreData文件,我已经用一种解决方法改写了我的答案。
(点击移至垃圾箱。)
答案 1 :(得分:2)
因此,解决问题的方法实际上非常简单:
要向实体添加另一个属性,您可以完全按照与content
属性相同的方式处理它。只需在图形编辑器中添加属性,就像之前使用content
一样,然后再使用Xcode的内置功能生成类,就像以前一样。 / p>
Xcode将覆盖以前生成的文件,并将其替换为现在具有该属性的新版本。按照您的喜好随时进行该过程并无害处。 :)
修改强> 简而言之,您需要记住在更改数据模型后从设备(或模拟器)删除应用程序,因为否则应用程序将崩溃,因为您的新Core Data模型不一致你以前用过的那个。 其次,如果你想为数据模型类添加功能(无论如何你应该非常小心,但也许是一些实用的核心数据函数......),你应该使用 iOS类别,以便在重新生成模型类时,为此编写的代码不会被删除。关于iOS开发的斯坦福大学讲座在核心数据上有一个great introduction session,详细解释了这种方法!