2010-08-06 10 views
7

Ecco la mia domanda. Ho questo modello uno [Evento] ha più [Giorno] e c'è una relazione chiamata giorni in [Evento] e c'è un evento di relazione inversa in [Giorno].NSPredicate filtrare i dati tramite la relazione anziché una proprietà

Ora voglio passare l'oggetto Event e ottenere tutti i giorni utilizzando NSFetchedResultsController e inserire tutti i giorni nella tabella. Qui è il mio codice:

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

In qualche modo, l'istanza NSFetchedResultsController restituirà sempre la stessa cosa per evento diverso. Come devo riparare NSPredicate?

risposta

14

ho capito:

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

Grazie per mettere questo in su! – Aaronium112

Problemi correlati