2010-12-01 5 views
1

Проблема в том, что на одном и том же представлении есть несколько NSFetchRequestControllers? У меня есть 4 таблицы в 1 представлении и нужны 4 контроллера - мне придется использовать теги, чтобы различать таблицы, которые, как мне кажется, просто любопытно, что касается лучшей практики.несколько NSFetchRequestController в том же представлении?

ответ

1

Я не думаю, что с этим что-то не так. Предполагая, что данные, стоящие за каждой из ваших таблиц, не очень тесно связаны, вы все равно закончите с четырьмя отдельными структурами данных (чтобы кэшировать результаты нескольких наборов). Одна вещь, которая может быть полезна, состоит в том, что для каждой таблицы есть отдельный dataSource, но общий delegate. Таким образом, вы можете обрабатывать логику представления в общем делетете, например, нажав новые контроллеры представлений, когда ячейки выбраны. Просто мысль.

0

До тех пор, пока вы используете отдельные экземпляры контроллеров, а затем настройте fetchResultsController на основе той таблицы, которую вы заполняете, это должно быть хорошо.

У меня есть 1 контроллер вида, который создается на двух отдельных вкладках, чтобы отобразить тот же набор данных по-другому. Я просто проверяю, какая панель вкладок выбрана в методе NSFetchedResultsController, и соответствующим образом применяйте соответствующие предикаты:

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 
} 
Смежные вопросы