Я пытаюсь разделить данные на разделы по «recordDate», тогда для каждого раздела данные будут отсортированы по «elementName» в порядке возрастания. Ниже приведен текущий код (не работает):
NSManagedObjectContext *context = self.tankDatabase.managedObjectContext;
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Log"];
request.sortDescriptors = [NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"recordDate" ascending:NO], [NSSortDescriptor sortDescriptorWithKey:@"elementName" ascending:YES selector:@selector(localizedStandardCompare:)], nil];
request.predicate = [NSPredicate predicateWithFormat:@"ownedBy = %@", self.tank];
self.controller = [[NSFetchedResultsController alloc]
initWithFetchRequest:request
managedObjectContext:context
sectionNameKeyPath:@"recordDate"
cacheName:nil];
self.controller.delegate = self;
NSError *error;
BOOL success = [self.controller performFetch:&error];
Однако, когда я попытался использовать другие свойства для сортировки (например: elementName ASC, значение DESC и сгруппировать их по elementName), он работает так, как должен. Обратите внимание, что recordDate является типом Date в модели данных и NSDate в классе.
Также RecordDate содержит минуты и секунды, где его необходимо сгруппировать по этой детали.
Я пытался найти похожий случай по всему Интернету, но я не нашел никаких решений, которые работают. Что мне не хватает в моем коде? Или это просто баг Apple? Спасибо за ваше время и помощь.