Ios 核心数据:从两个实体获取结果,结果包含两个实体的信息

Ios 核心数据:从两个实体获取结果,结果包含两个实体的信息,ios,core-data,Ios,Core Data,有两个实体: 我想做一张餐桌 第一个实体是课程,第二个实体是时间和地点。在大学里,有一些课程,一门课程可能有不同的时间或地点。现在我想在每个工作日获取课程s及其相关的时间和地点s。但也有一些限制:如果本周介于学期开始周和学期最后一周之间,则需要该课程;在此课程中,选择其工作日等于某个工作日的课程。最后,我想了解课程及其相关的时间和地点 我对核心数据不太熟悉,你能帮我吗 已编辑: 就像SQL: SELECT Course.courseName, TimeAndPlace.courseLocati

有两个实体:

我想做一张餐桌

第一个实体是
课程
,第二个实体是
时间和地点
。在大学里,有一些课程,一门课程可能有不同的时间或地点。现在我想在每个工作日获取
课程
s及其相关的
时间和地点
s。但也有一些限制:如果本周介于学期开始周和学期最后一周之间,则需要该课程;在此课程中,选择其工作日等于某个工作日的课程。最后,我想了解课程及其相关的时间和地点

我对核心数据不太熟悉,你能帮我吗

已编辑: 就像SQL:

SELECT Course.courseName, TimeAndPlace.courseLocation, TimeAndPlace.courseOrder
FROM Course, TimeAndPlace
WHERE Course.startWeekTheCourseInTheTerm <= currentWeek AND Course.lastWeekTheCourseInTheTerm >= currentWeek AND timeAndPlaces.weekday == currentweekday;
选择Course.courseName、TimeAndPlace.courseLocation、TimeAndPlace.courseOrder
从课程、时间和地点
其中Course.startweek thecourseintheterm=currentWeek和timeAndPlaces.weekday==currentweekday;
效果图:


也许是这样的?1:n关系没有那么复杂,n:m:P关系会更有趣

NSFetchRequest* fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:[NSEntityDescription entityForName:@"Course" inManagedObjectContext:context]];

NSPredicate* = [NSPredicate predicateWithFormat:@"startWeekTheCourseInTheTerm <= %d AND lastWeekTheCourseInTheTerm >= %d AND timeAndPlaces.weekday == %d", currentWeek, currentWeek, weekday];
[fetchRequest setPredicate:predicate];
最后一步:获取

NSError* err = nil;
list = [NSMutableArray arrayWithArray:[context executeFetchRequest:fetchRequest error:&err]];
[fetchRequest release];

我倾向于第一个版本。但是如何使用这些数据呢?我想在代码中的滚动视图中绘制一些带有“courseName”和“courseLocation”的按钮,并使用它们的“courseOrder”和“weekday”来决定这些按钮的行和列。而不是在表视图中。您能帮我吗?只需更改
设置端口描述符
部分即可获得订单。你能给我一张屏幕截图或是一张幻灯片,里面有按钮吗?我有一个想法,但首先想知道我是否走对了路;)就像这样,也许可以使用其他控件而不是按钮:看起来像是我的答案中的效果图。您是否错过了设置单元格y和高度的attibute“timeFrom”和“timeUntil”?顺便说一句,用courseOrder代替timeFrom和timeUntil。对于exmaple,1-2,courseOrder的值为“0102”,11-12为“1112”。
[fetchRequest setSortDescriptors:[NSArray arrayWithObjects:[[NSSortDescriptor alloc] initWithKey:@"timeAndPlaces.weekday" ascending:YES], [[NSSortDescriptor alloc] initWithKey:@"timeAndPlaces.courseOrder" ascending:YES], nil]];
NSError* err = nil;
list = [NSMutableArray arrayWithArray:[context executeFetchRequest:fetchRequest error:&err]];
[fetchRequest release];