Coredata集成到现有的应用程序问题iphone中

时间:2010-07-05 06:28:05

标签: iphone core-data

我将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;

在我的.xcmod​​el中,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实体中。

有人可以帮忙吗?

这真的很紧急。

提前完成。

1 个答案:

答案 0 :(得分:1)

  1. NSManagedObject个实例可能不包含NSInteger个属性 - 您可能打算使用 NSNumber ,这是一个Core Foundation对象类型,可以在核心数据中序列化。

  2. idkeyword,非常可能保留。尝试以不同方式命名NSNumber属性。

  3. 使用新属性和关系更改更新模型后,始终需要修改或重新创建托管对象的标头和实施文件。