CoreData不会保存参考对象

时间:2013-10-21 13:46:04

标签: ios core-data reference

我正在使用核心数据将数据存储在我的i​​OS应用程序中。有两个实体,其中一个与另一个实体有多对多关系(例如,1个课程 - >许多学生,1个学生 - >多个等级)和反向。

每当我创建学生(或成绩)的新实例并通过课程(或学生)(NSManagedObject)时,此引用都无法保存并变为null。没有例外,保存对象的所有其他值,但对课程的引用为null

我在做什么:

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Student" inManagedObjectContext:context];
Student *newStudent = (Student *)[[NSManagedObject alloc]initWithEntity:entity insertIntoManagedObjectContext:context];


[newStudent setLastname:_lastname.text];
[newStudent setFirstname:_firstname.text];
[newStudent setNote:_note.text];

NSNumber *tmp = [NSNumber numberWithInt:(int)[[(AppDelegate *)[[UIApplication sharedApplication]delegate] staticDataObject]increaseGlobalSchuelerID]];
[newStudent setId:tmp];


[newStudent setCourse:(Course *)_detailItem];
[newStudent setDesktopID:[NSNumber numberWithInt:-1]];


NSError *error = nil;
if (![context save:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    abort();
}

_detailItem是实体course的NSManagedObject。你们有什么想法,为什么那不起作用?

提前致谢!

1 个答案:

答案 0 :(得分:0)

也许你可以尝试同时建立反向关系,这意味着将newstudent添加到_detailItem中。我昨天以这种方式解决了类似的问题,但实在不知道为什么。