我已经设置了一个数据模型,其中学生实体的名称与主题有1对多的关系。他参加的每个科目都有很多班级时间。
下面的代码根据学生姓名对其进行排序,这是直截了当的。
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];
我收到错误“'to-many key not here here'”,然后我尝试了setRelationshipKeyPathsForPrefetching:但是没有获取主题的to-many-relationship关系。有什么想法吗?
答案 0 :(得分:0)
这是一个过程:
试试这个。取得学生。然后,对于每个学生,从Class中获取“时间”,“大于或等于学生的当前时间”(以谓词格式),按“时间”排序。显示细节。如果你把它放在一个循环中,你有答案。