Diciamo che ho due entità, dipendente e reparto. Un reparto ha una relazione a molti con il dipendente, molti dipendenti possono trovarsi in ogni dipartimento ma ogni dipendente appartiene a un solo dipartimento. Voglio visualizzare tutti i dipendenti in una vista tabella ordinata per dati che è una proprietà del dipartimento a cui appartengono utilizzando un NSFetchedResultsController. Il problema è che voglio che la mia tabella si aggiorni quando un oggetto del dipartimento riceve le modifiche proprio come fa se cambiano le proprietà regolari dei dipendenti, ma FetchedResultsController non sembra tracciare gli oggetti correlati. Ho ottenuto superato questo problema parzialmente facendo quanto segue:NSFetchedResultsController con relazione non aggiornata
for (Employee* employee in department.employees) {
[employee willChangeValueForKey:@"dept"];
}
/* Make Changes to department object */
for (Employee* employee in department.employees) {
[employee didChangeValueForKey:@"dept"];
}
Questo ovviamente non è l'ideale ma fa sì che il dipendente in base metodo di FRC delegato didChangeObject ottenere chiamato. Il vero problema che ho lasciato ora è nelle ordinamento di un FRC che sta rintracciando gli oggetti dipendenti:
NSEntityDescription *employee = [NSEntityDescription entityForName:@"Employee" inManagedObjectContext:self.managedObjectContext];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"department.someProperty" ascending:NO];
Questa grande opera e ordina i dipendenti correttamente la prima volta si chiama, il problema è che quando faccio le modifiche a un reparti someProperty che dovrebbe cambiare l'ordinamento del mio tavolo dei dipendenti non succede nulla. C'è un buon modo per avere il mio dipendente FRC tenere traccia delle modifiche in una relazione? In particolare, ho solo bisogno di un modo per aggiornare l'ordinamento quando l'ordinamento è basato su una proprietà correlata. Ho esaminato alcune domande simili ma non sono riuscito a trovare una soluzione soddisfacente.
Non è sicuro che vorresti impostare un FRC per guardare più di un'entità alla volta. Le permutazioni diventerebbero grandi e brutte in fretta. Potresti anche avere problemi con la circolarità. – TechZen
Ho attraversato situazioni in cui le visualizzazioni iPad hanno bisogno di guardare più di un'entità per mantenere lo stato. È qui che l'idea è nata originariamente. –
Sarei favorevole a una secondaria o sottoclasse. Più complessità aggiungi alla classe base, più devi gestire e eseguire il debug. – TechZen