目前我的模型中有两个实体;模块和级别。他们有一对多的关系,例如一个关卡可以有很多模块。我怎样才能插入数据,使它们相互关联,这样我就可以说该模块具有特定的年份。我需要这个,这样当我删除模块时它也会删除一年。
模块<<---->级别
如果我只是单独添加对象,它工作正常,但我添加最后一行代码应用程序崩溃,它说实体模块不符合键 level_number 的键值编码,键 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];
最佳答案
当您有一对多关系时,从一侧设置值,Core Data
将负责另一侧。
因为级别与模块具有一对一的关系。将模块设置为一个级别,然后保存上下文。
关于ios - 如何插入与另一个相关的核心数据记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16630906/