2010-08-06 2 views
7

여기 내 질문이 있습니다. 이 모델은 [Event]에 여러 개의 [Day]가 있고 [Event]에 일이라고하는 관계가 있고 [Day]에 역 관계 이벤트가 있습니다.NSPredicate는 속성이 아닌 관계를 통해 데이터를 필터링합니다.

이제 Event 객체를 전달하고 NSFetchedResultsController를 사용하여 하루 종일 처리하고 모든 요일에 피드를 전달하려고합니다. 여기 내 코드가 있습니다 :

// Create the fetch request for the entity. 
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
// Edit the entity name as appropriate. 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Day" inManagedObjectContext:managedObjectContext]; 

//set predicate -> ?? 
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"event = %@", self.currentEvent]; 
[fetchRequest setPredicate:predicate]; 

//set entity 
[fetchRequest setEntity:entity]; 

// Set the batch size to a suitable number. 
[fetchRequest setFetchBatchSize:20]; 

// Edit the sort key as appropriate. 
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES]; 
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 

[fetchRequest setSortDescriptors:sortDescriptors]; 

// Edit the section name key path and cache name if appropriate. 
// nil for section name key path means "no sections". 
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest 
                          managedObjectContext:managedObjectContext 
                           sectionNameKeyPath:nil 
                             cacheName:nil]; 

어쨌든 NSFetchedResultsController 인스턴스는 항상 다른 이벤트에 대해 동일한 것을 반환합니다. NSPredicate를 어떻게 수정해야합니까?

답변

14

나는 그것을 알아 냈 :

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF IN %@", self.currentEvent.days]; 
+0

감사이 참아! – Aaronium112