我有多对多,并希望对此进行排序,以便(Event)标题是下面的keyPath列表关联(Person)名称,包括重复的情况。像这样的东西。
数据模型描述
事件<< ---->>人,反向关系是“事件”和“人”,每个人都有一个属性eventTitle和personName。
eventTitle1
personNameA
personNameB
eventTitle2
personNameA
personNameC
我使用了一个fetchRequests,并使用sortDescriptors在keyPath上进行了排序。对于许多人来说,以这种方式工作需要做些什么。这是足够的信息吗?第一篇文章,非常感谢任何/所有的帮助。
答案 0 :(得分:5)
我会获取获取“Person”实体的获取请求,然后按事件排序。有点像这样。
NSSortDescriptor *eventSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"event.name"
ascending:ascending
selector:@selector(caseInsensitiveCompare:)];
NSSortDescriptor *personSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name"
ascending:ascending
selector:@selector(caseInsensitiveCompare:)];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:eventSortDescriptor, personSortDescriptor, nil];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person"
inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:@"event.name"
cacheName:cacheName];