我创建了一个带有3个参数的简单基类(OBJECT1
,见下文)并实现了一个核心数据模型,其中有一个实体派生自这个类,有一个属性(顺序)。
问题是,当我保存上下文时,只有动态参数(在模型中创建)存储在sql文件中,那些未包含在模型中(手动创建)的参数不会持久存在...
所以name1
,name2
和name3
参数在第一次创建对象时会有值,但是在下一次App运行时,因为我不再创建它们了...它们是null ...
如果我从OBJECT1
类创建派生类...
是否有办法永久存储整个对象,并仅将Core Data模型用于需要建立索引的关键属性?
BASE OBJECT1:
@interface OBJECT1 : NSManagedObject
{
NSString *name1;
NSString *name2;
NSString *name3;
}
@properties (nonatomic,assign) NSNumber *order;
@properties (nonatomic,copy) NSString *name1;
@properties (nonatomic,copy) NSString *name2;
@properties (nonatomic,copy) NSString *name3;
@end
@implementation OBJECT1
@dynamic order;
@synthesize name1;
@synthesize name2;
@synthesize nam3;
@end
答案 0 :(得分:2)
托管对象类是普通类,您可以向它们添加实例变量并使用它们。这并不意味着这些数据会神奇地保存,因为它与Core Data存储无关。
如果您正在使用Core Data,请将要保留的所有信息添加到模型中,以便Core Data可以为您控制/保存它。运行2种不同的方案来保存来自同一对象的数据将会造成混淆和容易出错。