У меня есть объект базовых данных с именем Событие , а два соответствующих атрибута называются startDateTime и countryCode .Моя проблема в том, что разделы в моем табличном представлении должны быть сгруппированы по дню и коду страны.Я видел много примеров того, как добиться группирования по дням (например, DateSectionTitles от Apple), но это становится намного сложнее, когда я добавляю код страны.
Я использую переходный разделIdentifier какрекомендуется в примере DateSectionTitles, и разделы выглядят примерно так: «20110928 SE», «20110929 SE», «20110928 ГБ» и т. д.
Сначала я попробовал это:
NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"startDateTime" ascending:NO];
NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"countryCode" ascending:NO];
sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1, nil];
[sortDescriptor1 release];
[sortDescriptor2 release];
Ноэто не работает, так как startDateTime имеет компонент времени, который приводит к несоответствию индекса.Мне нужно отсортировать startDateTime без компонента времени.
Очевидным решением будет разделение даты и времени на два разных атрибута объекта.Но когда я думаю об этом, это не сработает, поскольку дата относится к часовому поясу.Когда телефон меняет часовой пояс, атрибуты даты и времени будут недействительными.
Я также пытался создать подкласс NSSortDescriptor и создать пользовательскую функцию compareObject, но, кажется, она никогда не вызывается, и я не могу найти какой-либорабочие примеры.
Как бы вы решили это?Подклассный NSSortDescriptor - это верный путь, или, может быть, есть более умный путь?