6

iPhone 핵심 데이터 프로젝트의 기본 Xcode 템플릿을 확인하고 있습니다. 가져온 결과 컨트롤러를 반환하는 메서드에서이 참조하십시오.여러 엔터티에 대해 여러 개의 NSFetchedResultControllers가 필요합니까?

- (NSFetchedResultsController *)fetchedResultsController { 

    ... 

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext]; 
[fetchRequest setEntity:entity]; 
    ... 

    return fetchedResultsController; 
}  

특정 엔터티 이름을 설정하는 것 같습니다. 여러 엔터티가있는 경우 어떻게됩니까? 2 NSFetchedResultsController 인스턴스가 있고 내가 사용하는 엔터티에 따라 올바른 컨트롤러를 반환하는 2 가지 메서드가 있습니까?

감사합니다.

답변

6

에 달려 있습니다.

예를 들어 Person에서 상속 한 Person 엔티티 및 Employee 엔티티가있는 경우 Person 및 Employees를 모두 가져 오는 Person 엔티티에 대해 하나의 NSFetchedResultsController를 사용할 수 있습니다. 그러나 과일 엔티티와 사람 엔티티 (사람이 과일에서 상속받지 않고 그 반대의 경우도 마찬가지)가 있으면 1 개의 NSFetchedResultsController를 사용하여 과일과 사람을 구할 수는 없습니다.

하나 이상의 NSFetchedResultsController가 필요한지 여부는 엔티티 상속 계층 구조에 따라 다릅니다.

+1

내 앱에는 2 개의 항목이 있습니다. 작업 및 휴지통. bin에는 여러 개의 Task가 포함되어 있으므로 Bin 엔티티는 "tasks"라는 Task 엔티티에 대한 To-Many 관계를가집니다. 각 작업에는 Bin 엔터티에 대한 "bin"관계가 있습니다. 그리고 그 둘 사이에는 역관계 관계가 있습니다. Bin은 Task를 상속받지 않으며 그 반대도 있지만 관계가 있습니다. 내 시나리오에서 가장 좋은 옵션은 무엇입니까? – indragie

+1

테이블보기는 무엇을 표시합니까? 작업 또는 저장소? 일반적인 UI 패턴은 Bin을 표시 한 다음 사용자가 특정 Bin (마스터 세부보기)을 선택할 때 특정 Bin에 작업을 표시하는 것입니다. – Giao

+1

그게 내가하는 일이야. 마스터보기에는 저장소를 나열하는 테이블보기가 있으며 저장소가 선택되면 세부보기에는 해당 저장소에있는 작업을 표시하는 다른 테이블보기가 있습니다. – indragie