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

时间:2011-03-31 17:33:09

标签: core-data

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

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

eventTitle1
personNameA
personNameB
eventTitle2
personNameA
personNameC

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

1 个答案:

答案 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];
相关问题