간단한 예로, 다 대다 관계가있는 엔티티가 2 개 있다고 가정 해 보겠습니다. 첫 번째 엔티티는 "Projects"이고 두 번째 엔티티는 두 번째 "Employees"입니다. 프로젝트 엔티티는 1 명 이상의 직원을 가질 수 있으며 직원은 하나 이상의 프로젝트에 참여할 수 있습니다.관계를 사용하는 NSFetchedResultsController 및 테이블
다시 말해서 프로젝트에는 projectName이라는 속성이 있고 withEmployees라는 Employee와 많은 관계가 있습니다. 반대로 Employee는 employeeName과 a와 myProjects라는 프로젝트에 대한 많은 관계를가집니다.
NSFetchedResultsController 사용 projectName을 섹션 이름으로, employeeName을 행에 포함 할 테이블이 필요합니다. 가져온 엔티티로 Project를 사용하면 각 프로젝트를 쉽게 가져 와서 적절한 섹션 이름을 만들 수 있습니다. 그러나 numberOfRowsInSection을 계산할 때 문제가 발생합니다. 가져온 결과가 프로젝트의 레코드 하나를 가져 왔기 때문에 numberofrows는 .withEmployees 관계에있는 NSSet을 조사하지 않으므로 하나의 엔티티 만 보게됩니다. 즉, NSSet 관계 내에서 숫자의 수가 아니라 하나의 직원 만 출력됩니다.
테이블에서 많은 관계를 사용하려면이 문제를 어떻게 극복해야합니까?
감사합니다. 여기
은 fetchedcontroller 코드입니다 :NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Projects"
inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *firstSort = [[NSSortDescriptor alloc] initWithKey:@"projectName"
ascending:NO];
NSArray *sortDescriptors = @[firstSort];
[fetchRequest setSortDescriptors:sortDescriptors];
_fetchedController = [[NSFetchedResultsController alloc]initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:@"projectName"
cacheName:nil];
fetchedResultsController를 설정하는 데 사용하는 코드를 표시하십시오. –
게시물 하단에 추가되었습니다. 감사. – C6Silver