0

目前我的模型中有两个实体;模块和级别。它们有一对多的关系,例如一个级别可以有很多模块。如何插入数据以使它们相互关联,以便我可以说该模块具有特定的年份。我需要这个,这样当我删除模块时它也会删除一年。

模块<<---->级别

如果我只是单独添加对象它工作正常,但我添加最后一行代码应用程序崩溃它说实体模块不符合键 level_number 的键值编码,这是模块端的关系名称。

NSManagedObject *newModule;
newModule = [NSEntityDescription
              insertNewObjectForEntityForName:@"Module"
              inManagedObjectContext:context];

[newModule setValue:textModuelTitle.text forKey:@"name"];
[newModule setValue:value forKey:@"credit"];

    NSManagedObject *newLevel;
    newLevel = [NSEntityDescription
                 insertNewObjectForEntityForName:@"Level"
                 inManagedObjectContext:context];
       [newLevel setValue:year forKey:@"value"];

    [[newModule mutableSetValueForKey:@"level_number"] addObject:newLevel];
4

2 回答 2

2

当您有一对多关系时,从一侧设置值并Core Data照顾另一侧。

由于一个级别与模块具有一对一的关系。将模块设置为一个级别,然后保存上下文。

于 2013-05-19T02:54:26.760 回答
0

您能否发布您的整个崩溃消息。

仔细检查您的关系是否正确设置。有时模拟器可能会保留旧的 coreData 结构。尝试从中删除应用程序并重新运行。

于 2013-05-19T05:08:44.870 回答