Обычный подход к работе с разделами переменной длины (который, как я полагаю, имеет место в данном случае) заключается в создании коллекции, представляющей разделы, содержащие вложенные коллекции, для представления строк. Так, например, у вас может быть верхний уровень NSMutableArray
значений секций, где каждый элемент представляет собой NSMutableArray
значений строк.
EDIT
Учитывая текущую структуру ваших plist-данных, другим подходом будет фильтрация массива с использованием экземпляра NSPredicate
. Например, следующий код будет фильтровать строки для текущего раздела по дням недели:
static NSArray *days;
if (days == nil)
{
// Populate the array with days of the week in the order
// in which you want the table view to present the sections.
days = [NSArray arrayWithObjects:@"Monday", @"Tuesday", nil];
}
NSString *day = [days objectAtIndex:[indexPath section]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"weekDay like %@", day];
NSArray *filteredDicts = [[self programArray] filteredArrayUsingPredicate:predicate];
Обратите внимание, что вам также необходимо изменить tableView:numberOfRowsInSection:
, чтобы использовать тот же механизм, чтобы он возвращал правильное количество строк для каждого раздела.