Добавление индекса в представление таблицы основных данных [iPhone, представления таблиц]

#iphone #ios #uitableview #core-data

#iPhone #iOS #uitableview #core-data

Вопрос:

У меня есть представление таблицы, которое сгруппировано по месяцам и годам. Для этого я создал атрибут transient и соответствующий дескриптор сортировки в NSFetchedResultsController, который помогает мне группировать в соответствии с месяцем и годом. Представление таблицы работает отлично и отображает разделы так, как я хочу (используя titleForHeaderInSection).

Я хочу добавить индекс в представление таблицы, и в настоящее время я здесь застрял. Я считаю, что единственный способ сделать это -:

 - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
 

Итак, как мне предоставить ему массив всех названий разделов?

PS: Это мой первый пост.

Комментарии:

1. да, пожалуйста, опубликуйте свои результаты и отметьте свой собственный ответ. В противном случае люди будут продолжать читать ваш вопрос в надежде помочь найти ответ

Ответ №1:

Вот что я сделал:

 - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
NSInteger lastSectionIndex = [self.tableView numberOfSections] - 1;
if (lastSectionIndex == -1) {
    return nil;
}
NSMutableArray *sectionNames = [[NSMutableArray alloc] init];
NSString *sectionName = nil;
for (int i = 0; i <= lastSectionIndex; i  ) {
    sectionName = [[[self.fetchedResultsController sections] objectAtIndex:i] name];
    [sectionNames addObject:sectionName];
}
return sectionNames;
 

}

Комментарии:

1. Гораздо более короткая версия этого была бы return [[self.fetchedResultsController sections] valueForKeyPath:@"name"]; .

2. О, большое спасибо. Это на самом деле то, что я искал. Я был смущен между свойством «name» и ключом «name».