1

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를 올바르게 설정하여 섹션 배열의 각 개체를 모든 개체가 아니라 섹션별로 만들 수 있습니까?

답변

1

이것은 다른 포럼에서 Phillip Mills가 대답했습니다. 문제는 전체 firstName을 사용하여 첫 번째 문자가 아닌 섹션을 작성하는 것이 었습니다. 수정 사항은 업데이트되거나 변경 될 때마다 섹션 제목을 생성하도록 엔티티를 업데이트하는 것입니다. Apple의 DateSectionTitles에는 수행 할 작업의 샘플이 있습니다.

관련 문제