核心数据到fetch上的许多排序

1 core-data

我有多对多,并希望对此进行排序,以便(事件)标题是下面的keyPath列表关联(Person)名称,包括重复的情况.这样的事情.

数据模型描述
事件<< ---- >>人,反向关系是'events'和'people',每个都有一个属性eventTitle和personName.

eventTitle1
personNameA
personNameB
eventTitle2
personNameA
personNameC

我使用了一个fetchRequests,并使用sortDescriptors在keyPath上进行了排序.对于许多人来说,以这种方式工作需要做些什么.这是足够的信息吗?第一篇文章,任何/所有的帮助非常感谢.

Dan*_*Dan 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];
Run Code Online (Sandbox Code Playgroud)