У меня есть модель данных с именем Location
. Я использую их в качестве заголовков разделов в UICollectionViewController
. Каждый location
может отображать items
внутри этих разделов. Я хочу настроить заголовки разделов в viewForSupplementaryElementOfKind
. Но я не могу понять, как извлечь из этого метода правильные объекты Location
.Получить объект раздела NSFetchedResultsController из представления UICollectionView forSupplementaryElementOfKind
Я пытался что-то вроде:
-(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
id <NSFetchedResultsSectionInfo> sectionInfo = [self.fetchedResultsController sections] [indexPath.section];
Item *item = sectionInfo.objects[0];
Location *location = item.location;
SectionHeaderView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"SectionHeader" forIndexPath:indexPath];
headerView.label.text = location.name;
[...]
Но я получаю:
Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'
Это, вероятно, потому, что это возможно, чтобы иметь место без каких-либо предметов. Любые другие идеи о том, как я должен это делать?
Возникает ли проблема только для разделов без предметов? Другими словами, вы получаете правильные объекты местоположения, если все разделы не пусты? –
Нет, но я не уверен, как получить правильные местоположения, если у него нет никаких элементов, и я не могу сделать 'item.location'. – Anders
На самом деле мне интересно, как вы получаете разделы с нулевыми элементами вообще, при использовании настройки, как в ответе на ваш предыдущий вопрос. В ваших источниках данных или делегировании могут возникнуть проблемы. Но я не уверен ... –