5

Questa volta ho uno strano comportamento con NSFetchedResultsController. Creo un fetchRequest come questo:NSFetchedResultsController and Relationship

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entdesc = [NSEntityDescription entityForName:@"Exam" inManagedObjectContext:self.managedObjectContext]; 
[fetchRequest setEntity:entdesc]; 
NSPredicate *predi = [NSPredicate predicateWithFormat:@"student == %@", self.student]; 
[fetchRequest setPredicate:predi]; 

Se eseguo con executeFetchRequest:error: di NSManagedObjectContext, ottengo il risultato atteso. Tutti gli esami secondo lo studente. (Tra studente ed esame è una relazione uno-a-molti) Ma se uso lo stesso fetchRequest in un NSFetchedResultsController, ottengo qualcosa di diverso. Fino ad ora non sono uscito, quello che ottengo esattamente. Nei miei occhi il risultato è casuale.

Potete aiutarmi? Voglio gestire gli esami di un determinato studente con un NSFetchedResultsController.

Sandro Meier

+0

'[predicato NSPredicateWithFormat: @" studente ==% @ ", self.exam]'. Qui, 'self.exam' è uno studente? – albertamg

+0

Mi dispiace per colpa mia. Certo, deve essere uno studente. ;-) –

risposta

1

Se avete già in mano un oggetto Student, non devi andare a prendere gli oggetti Exam basta chiedere l'oggetto Student per i contenuti dei suoi rapporti exams. Non è necessario recuperare perché hai già un riferimento a tutti gli oggetti Exam che desideri.

Per quanto riguarda il motivo per cui il recupero funziona al di fuori del controller dei risultati di recupero, non posso dire con certezza. Il controller non fa altro che prendere i risultati di un recupero e impacchettarli per la visualizzazione in una vista tabella. Se i dati non vengono visualizzati correttamente in tableview, il problema è più probabile nei metodi delegate/datasource di tableview in cui si connettono i contenuti del controller dei risultati recuperato a tableview.

+0

Grazie per la risposta. Ho pensato anche a questo. Ma il NSFetchedResultsController fa tutto il trattamento per me. Se non trovo un'altra soluzione, lo farò in questo modo. ;-) –

+0

Sì, lo stesso problema qui. È molto comodo avere il controller di recupero per creare tutte le sezioni per il tuo tavolo. Qual è la migliore pratica qui? – obiwahn

Problemi correlati