6

Sto verificando il modello Xcode predefinito per un progetto di dati di base dell'iPhone. Nel metodo che restituisce il controller risultato recuperato vedo:Multiple NSFetchedResultControllers per diverse entità?

- (NSFetchedResultsController *)fetchedResultsController { 

    ... 

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext]; 
[fetchRequest setEntity:entity]; 
    ... 

    return fetchedResultsController; 
}  

Sembra impostare un nome di entità specifico. Cosa succede se ho più entità? Avrei 2 istanze NSFetchedResultsController e ho 2 metodi che restituiscono il controller corretto a seconda dell'entità che sto usando?

Grazie

risposta

6

Dipende.

Ad esempio, se si dispone di un'entità Person e un'entità Employee che eredita da Person, è possibile utilizzare un NSFetchedResultsController per un'entità Person che recuperi sia Persone che Dipendenti. Tuttavia, se hai qualcosa come Entità Fruit e Entità Person (e Person non eredita da Fruit e viceversa), è improbabile che tu possa usare 1 NSFetchedResultsController per ottenere Frutta e Persone.

Se si desidera o meno 1 o più NSFetchedResultsController dipende dalla gerarchia di ereditarietà dell'entità.

+1

Nella mia app ho 2 entità. Attività e Bin. Un raccoglitore contiene più Attività, quindi l'entità Bin ha una relazione To-Many con l'entità Task chiamata "tasks". Ogni attività ha una relazione "bin" con l'entità Bin. E ho una relazione inversa configurata tra i due. Bin non eredita da Task e viceversa, ma hanno una relazione. Quale sarebbe l'opzione migliore nel mio scenario? – indragie

+1

Cosa mostra la visualizzazione della tabella? Compiti o bidoni? Un modello di interfaccia utente comune sarebbe quello di visualizzare i bin e quindi visualizzare attività in un determinato raccoglitore quando l'utente seleziona un particolare raccoglitore (vista dettagli principale). – Giao

+1

Questo è esattamente quello che sto facendo. La vista principale ha una vista tabella che elenca i raccoglitori, quindi quando un raccoglitore è selezionato, la vista dei dettagli ha un'altra vista tabella che mostra le attività che si trovano in quel raccoglitore. – indragie

Problemi correlati