У меня возникли трудности с созданием разделов tableView с использованием отношений.Основные данные - sectionNameKeyPath с отношением «один ко многим»
У меня есть два объекта с отношениями Список < ----- >>Item.
Я хочу Список быть разделы и Item быть строки. Я установил sectionNameKeyPath
с помощью клавиши @"itemList"
. А вот что остальная часть моей fetchedResultsController выглядит
- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
// Fetch Request
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Item"];
[fetchRequest setFetchBatchSize:20];
// Sort Descriptors
NSSortDescriptor *itemSort = [[NSSortDescriptor alloc] initWithKey:@"displayOrderItem" ascending:YES];
NSSortDescriptor *sectionSort = [[NSSortDescriptor alloc] initWithKey:@"displayOrderList" ascending:YES];
NSArray *sortDescriptors = @[sectionSort, itemSort];
[fetchRequest setSortDescriptors:sortDescriptors];
// Fetched Results Controller
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"itemList" cacheName:nil];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;
NSError *error;
if (![self.fetchedResultsController performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}
return _fetchedResultsController;
}
Результатом является то, что fetchedResultsController не заселить Tableview вообще. Когда я пробую его без разделов, с sectionNameKeyPath:nil
и только setSortDescriptor:itemSort
, он заполняет таблицу View отлично. Также правильно настроены numberOfSectionsInTableView
и controller didChangeSection
.
Я не уверен, что я делаю неправильно. Может ли кто-нибудь помочь мне в этом?
Благодаря
Вот что я в итоге. Поскольку я хотел использовать 'displayOrderList' для сортировки разделов, я использовал' itemList.displayOrderList' как sectionNameKeyPath и 'itemList.displayOrderList' как sortDescriptor. Я изменяю заголовок раздела на 'listName' в titleForHeaderInSection, и он отлично работает. Спасибо за вашу помощь! – SFF