Вы хотите фильтровать массив в дополнение к сортировке.Посмотрите NSPredicate и метод NSArray -filteredArrayUsingPredicate: Затем создайте eventsByDateArray для eventArrays, созданного фильтром.Затем в вашем табличном представлении делегат для создания ячеек, если все упорядочено правильно, первый раздел будет представлять дату событий в eventArray, который является первым объектом eventsByDateArray, а строки таблицы будут состоять из событий в eventArray.,И так для каждой даты.
Добавлено Ваше быстрое перечисление неверно.Вы перечисляете через ключи словаря.Таким образом, в вашем коде несортированный равно каждому ключу, как он перечисляет.Это отличный урок для всех.Неважно, как вы «печатаете» переменную.Когда Objective-C компилируется, он превращает их всех в id.Таким образом, NSMutableArray *unsorted
не является NSMutableArray, если он не назначен NSMutableArray.Если вы назначите несортированную строку NSString, это будет строка NSString.Быстрый перечислитель для словаря работает с использованием ключей.Таким образом, в этом случае несортированное становится NSString.
Вместо:
for (NSMutableArray *unsorted in dictionary) {
[unsorted sortUsingDescriptors:sortDescriptors];
}
вы должны иметь это:
for (id key in dictionary) {
NSMutableArray *unsorted = [dictionary objectForKey:key];
[unsorted sortUsingDescriptors:sortDescriptors];
}