在用数据填充实体后创建核心数据关系

can*_*boy 2 iphone entity core-data objective-c ios

假设您有几个核心数据实体..学生和考试.这两个最初填充了从Web下载的两个xml文件的数据.

现在,学生和考试是分开的事情......最初他们之间没有联系.但在填写这两个实体后,我可能想要将某些学生连接到某些考试.或者我可能希望让所有学生参加特定的考试.但我仍然希望能够将考试视为独立的事情,这可能没有学生联系.

我不确定如何使用Core Data执行此操作.在数据模型中,您要么有关系,要么不要.我是否应该为考试设置两个不同的实体...一个用于独立考试,一个用于连接到学生,可以从另一个考试设置中建立?

Dav*_*har 7

不,你不应该制作两种实体类型.

仅仅因为你在两种实体之间存在关系并不意味着你不能创建一个关系为零的对象.

因此,假设你有之间的许多一对多的关系,StudentExam,你可能会做一些像创建一个新的考试:

Exam *newExam = [NSEntityDescription
     insertNewObjectForEntityForName:@"Exam"
     inManagedObjectContext:context];
newExam.course = @"CS 101";
newExam.description = @"Midterm";
Run Code Online (Sandbox Code Playgroud)

之后您可能会建立学生与该考试之间的关系,如:

[newExam.students addObject:aStudent];
Run Code Online (Sandbox Code Playgroud)

(和students之间的关系名称在哪里ExamStudent