2009-11-17 4 views
2

두 가지 엔티티 (List 및 ListItem이 있음)가 있고 그 사이에 일대 다 관계가 설정되어 있습니다. 좋은.iPhone coredata 가져 오기 요청, 관계 및 섹션 기본 사항

필자가 fetchrequest를 수행하려고 할 때 내 문제는 listitem을 listitem의 속성으로 구분하여 반환 할 때 발생합니다.


- (NSFetchedResultsController *)getListItems { 
    // Init a fetch request 
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"List" inManagedObjectContext:self.managedObjectContext]; 
    [fetchRequest setEntity:entity]; 

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"listItem.productName" ascending:YES selector:nil]; 
    NSArray *descriptors = [NSArray arrayWithObject:sortDescriptor]; 
    [fetchRequest setSortDescriptors:descriptors]; 


    // Init the fetched results controller 
    NSError *error; 
    self.globalFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"listItem.productName" cacheName:@"listItems"]; 
    self.globalFetchedResultsController.delegate = self; 
    if (![[self globalFetchedResultsController] performFetch:&error]) NSLog(@"Error: %@", [error localizedDescription]); 

    [fetchRequest release]; 
    [sortDescriptor release]; 

    return self.globalFetchedResultsController; 
} 

지금은 내가 말 때문에이 오류 : '목록 = 어디, 그래서 나는 다음과 같은'을 'xxxxx는했다 말할 수있는 방법이 없기 때문에 나는되는 listItem 오브젝트에 직접 fetchrequest을 수행 할 수 없습니다 정렬 설명자에 일대 다 관계를 사용할 수는 없지만 정렬 설명자가 있어야하므로이 작업을 수행하는 올바른 방법이 확실하지 않습니다. 어떤 도움이라도 좋을 것입니다.

답변

7

가져오고 ListItems를 섹션 화하려면 가져 오기에 대한 엔티티로 "ListItem"을 사용해야합니다.

이 경우, "List = 'xxxxx'인 모든 ListItem 객체를 가져 오는 방법이 있습니다. 이것은 술어 (NSPredicate)라고합니다.

또한
NSPredicate *pred = [NSPredicate predicateWithFormat:@"list == %@", listObject]; 
[fetchRequest setPredicate:pred]; 

Predicate Programming Guide를 참조하십시오

(이하 "목록"목록과 함께하여 ListItem 관계의 이름) 같은 것을보십시오.

+1

감사합니다. listitem에서 목록 객체까지 두 번째 역관계를 설정해야한다는 것을 알지 못했습니다. 위와 같이 목록을 지정할 수 있습니다. – tom

+0

"두 번째 반비례 관계"란 무엇을 의미하는지 모르지만 Apple은 모든 관계가 양방향임을 강력하게 권장합니다. Xcode는 이러한 요소가 누락되었을 때 컴파일러에게 경고를 줄 것입니다. – gerry3

관련 문제