2010-08-06 9 views
7

Aquí está mi pregunta. Tengo este modelo uno [Evento] tiene múltiples [Día] y hay una relación llamada días en [Evento] y hay un evento de relación inversa en [Día].NSPredicar filtrar los datos a través de una relación en lugar de una propiedad

Ahora quiero pasar el objeto Evento y obtener todos los días usando NSFetchedResultsController y alimentar todos los días en la tabla. Aquí está mi código:

// 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]; 

De alguna manera, la instancia NSFetchedResultsController siempre devolverá la misma cosa para diferentes eventos. ¿Cómo debo solucionar el NSPredicate?

Respuesta

14

lo he descubierto:

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

Gracias por poner esto! – Aaronium112

Cuestiones relacionadas