2010-08-04 5 views
0

Bon, j'ai donc une hiérarchie UITableView. Le contrôleur de niveau supérieur est pour les catégories, qui sont sélectionnées via Fetched Results Controller sans prédicat pour l'entité de catégorie.Contrôleur de résultats récupérés avec NSPredicate et données de base NSSet

Lorsqu'un utilisateur appuie sur une cellule, il est avancé vers le contrôleur d'affichage de tableau d'éléments. À ce stade, j'ai supposé que je devais utiliser un autre contrôleur de résultats récupérés avec un NSPredicate pour filtrer les résultats ne correspondant pas à la catégorie de sélection.

Cependant, j'ai eu beaucoup de difficulté à construire un prédicat qui le fait. Tous les exemples semblent être pour les chaînes de recherche d'attribuer des comparaisons. Ne pas comparer une relation CoreData.

Est-ce une meilleure pratique d'utiliser cette méthode, ou simplement obtenir le NSSet d'éléments de la transmis dans Category Managed Object?

Répondre

2

Votre contrôleur de vue de second niveau doit avoir la catégorie sélectionnée définie par injection de dépendance en tant que propriété. Votre contrôleur de vue de second niveau doit seulement savoir que la catégorie "c'est" est X. Il n'a pas du tout besoin d'un NSFetchedResultsController car vous avez déjà toutes les informations dont vous avez besoin via les relations sur "c'est" l'entité Catégorie. Pour ce faire, dans votre contrôleur de vue de niveau supérieur lorsqu'une catégorie est sélectionnée, vous obtenez un pointeur via le NSFetchedResultsController, instanciez le nouveau contrôleur de vue, définissez la propriété Catégorie, puis appuyez sur le nouveau contrôleur de vue.

Cela vous donnera une incapsulation solide et une séparation entre vos contrôleurs de vue.

Questions connexes