6

Je vérifie le modèle Xcode par défaut pour un projet iPhone Core Data. Dans la méthode qui renvoie le contrôleur de résultat récupéré, je vois ceci:Plusieurs NSFetchedResultControllers pour différentes entités?

- (NSFetchedResultsController *)fetchedResultsController { 

    ... 

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

    return fetchedResultsController; 
}  

Il semble s'agir d'un nom d'entité spécifique. Que faire si j'ai plusieurs entités? Aurais-je deux instances NSFetchedResultsController et deux méthodes qui renvoient le bon contrôleur selon l'entité que j'utilise?

Merci

Répondre

6

Cela dépend. Par exemple, si vous avez une entité Personne et une entité Employé qui hérite de Personne, vous pouvez utiliser un NSFetchedResultsController pour une entité Personne qui récupérera les Personnes et les Employés. Cependant, si vous avez quelque chose comme l'entité Fruit et l'entité Personne (et que Personne n'hérite pas de Fruit et vice versa), il est peu probable que vous puissiez utiliser 1 NSFetchedResultsController pour obtenir des Fruits et des Personnes.

Que vous ayez besoin d'au moins 1 NSFetchedResultsController dépend de la hiérarchie d'héritage de votre entité.

+1

Dans mon application, j'ai 2 entités. Tâche et Bin. Un bin contient plusieurs tâches, donc l'entité Bin a une relation To-Many à l'entité Task appelée "tasks". Chaque tâche a une relation "bin" avec l'entité Bin. Et j'ai une relation inverse configurée entre les deux. Bin n'hérite pas de Task et vice versa, mais ils ont une relation. Quelle serait la meilleure option dans mon scénario? – indragie

+1

Qu'est-ce que votre vue de table affiche? Tâches ou bacs? Un modèle d'interface utilisateur courant consisterait à afficher des classeurs, puis à afficher les tâches dans un chutier particulier lorsque l'utilisateur sélectionne un chutier particulier (vue maître-détail). – Giao

+1

C'est exactement ce que je fais. La vue principale dispose d'une vue de table qui répertorie les groupes, puis lorsqu'un groupe est sélectionné, la vue détaillée a une autre vue de table qui affiche les tâches qui se trouvent dans ce groupe. – indragie

Questions connexes