2010-12-01 4 views
1

Est-ce un problème d'avoir plusieurs NSFetchRequestControllers dans la même vue? J'ai 4 tables dans 1 vue et ai besoin de 4 contrôleurs - je devrais employer des étiquettes pour différencier entre les tables je devine - juste curieux quant à une meilleure pratique.plusieurs NSFetchRequestController dans la même vue?

Répondre

1

Je ne pense pas qu'il y ait quelque chose de mal à cela. En supposant que les données derrière chacune de vos tables ne sont pas très liées, vous allez de toute façon vous retrouver avec 4 structures de données séparées (pour mettre en cache les résultats de plusieurs extractions). Une chose qui pourrait être utile est d'avoir un dataSource séparé pour chaque table, mais un partagé delegate. De cette façon, vous pouvez gérer la logique de vue dans le délégué partagé, par exemple en poussant de nouveaux contrôleurs de vue lorsque des cellules sont sélectionnées. Juste une pensée.

0

Tant que vous utilisez des instances distinctes de contrôleurs, puis que vous configurez fetchResultsController en fonction de la table que vous remplissez, cela devrait fonctionner correctement.

J'ai 1 contrôleur de vue qui est instancié sur deux onglets distincts pour afficher le même ensemble de données d'une manière différente. Je vérifie simplement quelle barre d'onglets est sélectionnée sur la méthode NSFetchedResultsController et applique les prédicats appropriés en conséquence:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSUInteger tab = [theDelegate.tabBarController selectedIndex]; 
switch (tab) { 
    case kFeaturedTab: { 
       // Setup sort desc & predicates 
     } 
    case kComingSoonTab: { 
      // Setup alt. sort desc & predicates 
    } 
     ... // Do the fetch 
} 
Questions connexes