2017-02-20 3 views
0

У меня есть 3 разных контроллера представлений, которые представляют одни и те же данные. В основном они представлены один за другим. Они представляют одну и ту же сущность, которая извлекается с помощью NSFetchedResultsController.Передача NSFetchedResultsController между UIViewControllers

Я сейчас размышляю, так как это такие же NSFetchedResultsControllers, нужно ли просто оптимизировать вещи и создать их, чтобы пройти между контроллерами? Есть ли недостаток в этом, или даже лучше это хорошая практика?

Недостаточно просто передать набор данных, так как я хочу, чтобы контроллеры реагировали на изменения в базе данных.

ответ

1

Должен ли я просто оптимизировать вещи и создать их, чтобы пройти между контроллерами?

Да, минимизируя накладные расходы при выполнении аналогичного fetchRequest по инициативе каждого ВК, является хорошей практикой.
Лучше чередовать вместо передачи NSFetchedResultsControllers объекта между VCs бы -

  • Чтобы полностью абстрактные все FetchedResultsControllers инициализации & делегировать реализацию функций на вспомогательный класс окрестили как:
    @interface CoreDataHelper: NSObject <NSFetchedResultsControllerDelegate>

  • Вы потребуется повторная проводка delegate слушателей & выберите подходящее время для allocating & если необходимо (не обязательно) deallocating примера CoreDataHelper

  • Одиночный CoreDataHelper будет служить вам достаточно хорошо, чтобы обрабатывать все взаимодействия с Core Data.

Model взаимодействие с разделением расстояния & независимо от View компонентов позволяет для создания слабосвязанных модулей, что делает их многократным использование & сжатым.

Смежные вопросы