У меня есть эта структура в сущности основных данных:Сортировка nsfetchedresultscontroller
ID Region SubRegion SubRegionID CellText
1 Face Mouth 2 something
2 Face Eyes 1 ...
3 Face Nose 4 ...
...
Но я хочу, чтобы мой TableView (nsfetchedresultscontroller) сортируются таким образом:
Внутри каждой секции: клетки, отсортированных по ID недвижимости Разделы в tableView: имена SubRegion, но отсортированные по SubRegionID.
Как я могу это достичь? В настоящее время я делаю это, но я не знаю, это лучшая практика для сортировки названия разделов по subregionID:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"DataBase" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSPredicate *requestPredicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"(Region like '%@')", @"Face"]];
[fetchRequest setPredicate:requestPredicate];
NSSortDescriptor *ID = [[NSSortDescriptor alloc]
initWithKey:@"ID" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObjects: ID, nil]];
[fetchRequest setFetchBatchSize:10];
fetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:context sectionNameKeyPath:@"SubRegion"
cacheName:nil];
fetchedResultsController.delegate = self;
Спасибо за ваше время!
Спасибо за ваш совет. Но проблема все еще остается в логике сортировки, которую я использовал. Я получаю ячейки, отсортированные по ID, но имена разделов не сортируются по SubRegionID ... Мне нужны грани (разделы) лица, отсортированные по subregionID, и ячейки внутри этих разделов, отсортированные по ID. У тебя есть какой-нибудь совет? Благодаря! – Samui
Это связано с тем, как вы настраиваете свой NSFetchedResultsController. Вы должны установить 'sectionNameKeyPath' как' "SubRegionID" ', а не' 'SubRegion" '. В вашем методе 'tableView datasource'' titleForSection: 'вы должны затем вернуть имя субрегиона на основе идентификатора. – Mundi
Так я и использовал. Но я думал, что его можно отсортировать с помощью sortdescriptors напрямую. Спасибо за ваш совет! – Samui