그룹화 된 UITableView의 섹션에 NSManagedObject가 있습니다. 이 개체에는 "name"및 "createdAt"특성이 있습니다. 섹션 제목에 대해 "이름"을 사용하고 싶지만 "createdAt"로 정렬합니다. 문서에 따르면 첫 번째 sortDescriptor 키는 NSFetchedResultsController의 sectionNameKeyPath 여야합니다.NSFetchedResultsController - 섹션 이름과 다른 정렬 순서
두 개의 sortDescriptors 사용을 제안했지만 작동하지 않습니다. 섹션은 여전히 이름순으로 정렬됩니다.
- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Object" inManagedObjectContext:[CoreDataHelper instance].managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sortName = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSSortDescriptor *sortDate = [[NSSortDescriptor alloc] initWithKey:@"createdAt" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObjects:sortName, sortDate, nil]];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:[CoreDataHelper instance].managedObjectContext sectionNameKeyPath:@"name"
cacheName:@"Root"];
self.fetchedResultsController = theFetchedResultsController;
return _fetchedResultsController;
}
대단원! 너무 쉬울 수 있습니다. 아니요. 여러 가지 sortDescriptors의 기능을 이해합니다. 현재 내 개체의 "이름"은 고유하므로이 솔루션은 아무런 문제가되지 않습니다. 코드도 가져 주셔서 감사합니다. – Sebastian
@ 세바스찬 : 천만에요. –
답변 해 주셔서 감사합니다. – coreDeviOS