2011-06-02 2 views
0

J'ai un UITableView qui affiche des données historiques. Ceci est divisé en une section par jour. Chaque jour peut avoir plusieurs choses qui se passent (par exemple, pendant un certain jour, j'ai dormi, mangé de la nourriture, fait de l'exercice, etc.). Chaque "chose" est représentée par une entité différente. Donc, en quittant l'exemple précédent, j'ai des entités Jour, Sommeil, Nourriture et Exercice. Le sommeil, la nourriture et l'exercice ont tous l'entité Day en tant que parent, grâce à une relation un-à-plusieurs.NSFetchedResultsController et plusieurs relations

Actuellement, ce que je fais est de charger toutes les entités Jour, puis pour chaque jour, je vais charger les entités Sommeil, Nourriture et Exercice dans un seul tableau, et le trier par date. Inutile de dire que cela devient lent quand il y a beaucoup de données.

Est-il possible d'utiliser un NSFetchedResultsController dans cette instance?

Répondre

0

Ceci est juste une supposition, mais je pense que ce qui suit fonctionnerait:

EDIT - Je viens de vérifier avec un cas simple, que cela ne fonctionne

toutes vos entités d'événements (Sleep, alimentaire, exercice) héritent d'une entité de classe de base (vous pouvez l'appeler quelque chose comme « événement »), puis utilisez ce qui suit lorsque vous configurez votre NSFetchRequest que votre NSFetchedResultsController utilisera:

NSFetchRequest *fr = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:_managedObjectContext]; 
[fr setEntity:entity]; 

en théorie, causerait vos résultats cont rouleau pour retourner toutes vos entités existantes qui héritent de Événement. Vous pouvez également mettre la relation à Day dans la classe de base (Event) car toutes vos sous-classes ont cela en commun. En outre, vous devez spécifier un prédicat pour votre demande d'extraction pour saisir uniquement les événements correspondant au jour spécifique que vous recherchez.

Faites-moi savoir si cela fonctionne!

Questions connexes