我将coredata集成到http://wiresareobsolete.com/wordpress/2009/12/adding-core-data-existing-iphone-projects/中给出的现有应用程序中。
我在插入数据方面遇到了问题。我的数据未插入以下实体。
我正在将coredata框架导入课程编辑。
@interface Editorial : NSManagedObject {
NSInteger id;
NSString *type;
}
@property (nonatomic, assign) NSInteger id;
@property (nonatomic, retain) NSString *type;
在编辑。我写的是:
@implementation Editorial
@synthesize id, type;
在我的.xcmodel中,Editorial也是NSManagedObject的子类,并且具有相应类型的上述变量。
我想我错过了很明显的东西。但我没有得到它。通常在使用coredata时,如果在项目开始时创建,它会自动插入属性,它们不会在界面中声明,而是与@dynamic合成。但是在以后整合coredata时,是否应该按照coredata为我们创建它们的方式创建相应的类?
编辑:这就是我为编辑对象插入值的方法。
self.managedObjectContext = appDelegate.managedObjectContext;
newEditorial = (Editorial *)[NSEntityDescription
insertNewObjectForEntityForName:@"Editorial"
inManagedObjectContext:self.managedObjectContext];
strTitle = [NSString stringWithFormat:@"%@",[object valueForKey:@"eletitle"]];
[newEditorial setEletitle:[NSString stringWithFormat:@"%@", strTitle]];
[newEditorial setElecompany:[NSString stringWithFormat:@"%@", strTitle]]; // CRASHING HERE
[self saveAction];
在显示的第二个字符串插入处崩溃的另一件事。我正在
*由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'* - [NSManagedObject setElecompany:]:无法识别的选择器在此行发送到实例0x4658800'。
NSString * eleCompany存在于指定的coredata实体以及类中。 strTitle也包含字符串,而不是将它分配给eleTitle以及eleCompany,它们都是字符串,存在于类和coredata实体中。
有人可以帮忙吗?
这真的很紧急。
提前完成。
答案 0 :(得分:1)
NSManagedObject
个实例可能不包含NSInteger
个属性 - 您可能打算使用 NSNumber
,这是一个Core Foundation对象类型,可以在核心数据中序列化。
id
是keyword,非常可能保留。尝试以不同方式命名NSNumber
属性。
使用新属性和关系更改更新模型后,始终需要修改或重新创建托管对象的标头和实施文件。