NSFetchedResultsController를 사용하여 UITableViewController의 섹션 헤더를 만들 때 fetchedResultsController.sections에는 각 섹션이 아닌 각 항목에 대한 개체가 있습니다.NSFetchedResultsController 섹션 만들기
result count: 18
section count: 18
sectionIndexTitles count: 13
이 섹션에 포함되지해야하고 sectionIndexTitles는 경기 수 :
//Set up the request
NSManagedObjectContext *context = self.managedObjectContext;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:[NSEntityDescription entityForName:@"Person"
inManagedObjectContext:context]];
[fetchRequest setFetchBatchSize:20];
NSSortDescriptor *sortDescriptor = nil;
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName"
ascending:YES];
NSArray *sortDescriptors = nil;
sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[sortDescriptor release]; sortDescriptor = nil;
[fetchRequest setSortDescriptors:sortDescriptors];
[sortDescriptors release]; sortDescriptors = nil;
//setup fetch results controller
NSFetchedResultsController *controller = nil;
controller = [[NSFetchedResultsController alloc]
initWithFetchRequest:fetchRequest
managedObjectContext:context
sectionNameKeyPath:@"firstName"
cacheName:@"PersonCache"];
__fetchedResultsController = controller;
[fetchRequest release]; fetchRequest = nil;
//IMPORTANT: Delete cache before changing predicate
[NSFetchedResultsController deleteCacheWithName:nil];
NSError *error = nil;
if (![controller performFetch:&error])
{
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
} else if ([[controller fetchedObjects] count] == 0){
[self retrievePeoples];
}
NSLog(@"result count: %i", [[controller fetchedObjects] count]);
NSLog(@"section count: %i", [[controller sections] count]);
NSLog(@"sectionIndexTitles count: %i", [[controller sectionIndexTitles] count]);
이 반환? numberOfSectionsInTableView : 및 tableView : numberOfRowsInSection : 메서드가 호출 될 때 추가 정렬없이 countched에 대해 fetchedResultsController.section을 볼 수 있어야합니다.
NSFetchResultsController를 올바르게 설정하여 섹션 배열의 각 개체를 모든 개체가 아니라 섹션별로 만들 수 있습니까?