2013-06-25 2 views
1

몇 가지 샘플 코드와 사과 문서를 보면 fetchedResultsController는 항상 섹션 수를 하나씩 가지고 있습니다.NSFetchedResultsController가 더 많은 섹션을 반환하는 방법?

두 섹션을 반환하는 방법은 무엇입니까?

실제 문제는 iOS 할 일을하는 것입니다. 코어 데이터에 저장된 작업 목록을 완료/수행하려면 UITableview에 두 섹션으로 표시하십시오.

단 하나의 fetchedResultsController가 있는데, 두 섹션을 지원하는 방법은 무엇입니까?

이것은 공식 샘플 코드입니다.이 변경 방법을 알지 못합니다.

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    NSInteger count = [[fetchedResultsController sections] count]; 

    if (count == 0) { 
     count = 1; 
    } 

    return count; 
} 

답변

4

FetchedResultsController를 구성 할 때 sectionNameKeyPath을 제공해야합니다. 귀하의 경우 Entity에 해당 속성이있는 경우 finished이 될 수 있습니다.

Documentation

업데이트 :이 같은 NSFetchedResultsController를 초기화 할

:

NSFetchedResultsController *fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:manangedObjectContext sectionNameKeyPath:@"category" cacheName:nil]; 

fetchRequestsortDescriptorssectionNameKeyPath이하는 당신 같은 순서를 제공하는지 확인하십시오.

는이 같은 섹션의 이름에 액세스 할 수 있습니다

id<NSFetchedResultsSectionInfo> sectionInfo = fetchedResultsController.sections[section]; 
NSString *sectionTitle = [sectionInfo name]; 
+2

매개 변수의 정확한 이름은'sectionNameKeyPath'입니다. 동일한 키를 사용하여 (첫 번째) 정렬 설명자를 추가하는 것을 잊지 마십시오. –

+0

그 오타가 수정되었습니다. – Karl

+0

예를 들어 주시겠습니까? – Jacob

관련 문제