Я использую fetchedResultsController, чтобы получить данные для табличного представления.
Вот код для извлеченного контроллера:
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"Appliance" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:context sectionNameKeyPath:@"productLine.name"
cacheName:@"Root"];
Путь ключа раздела использует связанный объект. Appliance << -> ProductLine.
Я получаю заголовок разделов в таблице следующим образом:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
id <NSFetchedResultsSectionInfo> sectionInfo = [[fetchedResultsController sections] objectAtIndex:section];
return [sectionInfo name];
}
Это прекрасно работает, но если я изменю сортировку на "возрастание: ДА", тогда разделы таблицы получат неправильные заголовки.