1
我已经设置了一个数据模型,其中学生实体的名称与Subject有一对多的关系。他参加的每个主题都有许多班级时报。核心数据在一对多关系中排序
下面的代码根据学生姓名对它进行排序,这很简单。
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Student" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
// Edit the sort key as appropriate.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
我想要做的就是对它进行排序,以便它在每个学生需要参加的下一个班级时间排序。因此,显示屏将显示为学生,并按照下一课的时间进行排序。有任何想法吗?
我已经试过以下
[fetchRequest setEntity:[NSEntityDescription entityForName:@"Student" inManagedObjectContext:managedObjectContext]];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"(subjects.time > %@)", [NSDate date]]];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"time" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
我得到错误“‘一对多这里不允许钥匙’”,然后,我尝试setRelationshipKeyPathsForPrefetching:但没有取到多的关系的科目。有任何想法吗?
'time'是Class的一个属性。所以流程应该像从学生那里获取'名字'一样。从班级获取该学生的所有'时间'。排序'时间'以查找下一个上课时间(从现在开始)。然后根据下一个上课时间对所有学生进行排序。 – munchine 2010-10-06 00:52:41
@munchine是正确的。 – Jordan 2010-10-06 03:23:26
我很努力地得到这个工作的代码,因此这个问题,有人可以帮助我吗? – munchine 2010-10-06 05:20:36