Лучшая практика для работы с основными данными

Какой лучший дизайн использовать в приложении iPhone, который использует основные данные, когда у вас есть несколько контроллеров представлений, которые делают подобные вызовы для основных данных?

В настоящее время у меня есть приложение, в котором есть несколько контроллеров представлений, которые выполняют аналогичные функции, такие как добавление объектов в объект, удаление объекта и т. Д. Я полагаю, что есть несколько способов справиться с этим:

  1. У каждого контроллера представления есть собственный класс addItem: blah. Недостаток – это результат некоторых копий макарон между классами

  2. Создайте суперкласс, который имеет основные методы данных и наследует от этого класса. При необходимости переопределить

  3. Создайте категорию, чтобы все экземпляры контроллеров представлений имели эти методы без необходимости подкласса

  4. Создайте синтаксис диспетчера данных, который можно вызвать. Возможно, это будет полезно для того, чтобы я мог отправлять запросы в очередь и выполнять управление данными за пределами каждого контроллера представления. Недостаток – это похоже на плохую идею вообще

One Solution collect form web for “Лучшая практика для работы с основными данными”

CoreData и ViewControllers не должны знать друг о друге.

UIViewControllers не являются традиционными контроллерами в мире MVC. Они более тесно связаны с представлениями – и я предпочитаю их создавать с учетом этого (большинство примеров кода Apple содержат много кода ModelController – возможно, для простоты примеров).

Мне нравится создавать ModelControllers и оставлять мой ViewController управляющим моими представлениями, и я даю моему ViewControllers экземпляр моего ModelController.

Мой ModelController будет управлять моей моделью, загружать, редактировать, удалять и т. Д. … Я все еще выставляю классы Model для своих ViewControllers, но Views НИКОГДА не покидает ViewController. Вы бы никогда не увидели View в ModelController.

Преимущество этого заключается в том, что если вы позже создадите iPad-приложение – ваша модель и то, как она себя ведет, полностью независима от ваших ViewControllers, поэтому, когда вы создаете несколько новых UIViewControllers для своего iPad-приложения, вы можете подключить свои модели.

Ваш ModelController может иметь родительский класс с вашими дублирующими методами CRUD.

С другой стороны ….

Библиотека под названием MagicalRecord https://github.com/magicalpanda/MagicalRecord добавляет шаблон Active Record в NSManagedObjects.

  • Как Apple показывает больше в приложении «Сообщения» в портрете на iPhone 6 Plus?
  • Custom Storyboard Segue работает в симуляторе, но не на устройстве
  • Как реализовать приложение поиска google в iphone
  • Неправильная дата возвращается из NSDateComponents
  • Введите одновременно два поля uitext
  • Сбой сборки устройства после обновления до Xcode 8
  • не может изменить цвет фона UITableViewCell
  • «CGFloat» не конвертируется в «Double» ошибку в SWIFT (iOS)
  • Как использовать ogg.framwork в xcode для воспроизведения аудио с URL-адреса или данных
  • мое приложение ответит на схему URL?
  • ABGroupCreate не работает с Exchange
  • Interesting Posts

    Проблема IQKeyboardManager при использовании панели навигации

    ARC, ivars в блоках и эталонных циклах через захваченное я

    NSUrlSession приостанавливает и возобновляет выпуск блокировки устройства

    Какова связь между клипами UIViewToBounds и масками CALayerToBounds?

    Самостоятельные сертификаты iOS8 установлены, но не доверяются

    Как удалить PhoneGap из моего проекта и машины

    Отдельные веб-приложения для iPad?

    Сохраняется ли хранилище keychain iOS при восстановлении приложения на новом устройстве?

    Лучший подход для добавления Static-TableView-Cell в UIViewcontroller?

    Измените размер UITextView на размер его текста и уменьшите размер, если он больше высоты

    Нет известного метода класса для селектора 'circleOfButtons: buttonSize: radius:'

    Alamofire 4 и специальные символы в JSON

    Выделенные выражения для выполнения вычислений в Core Data

    КАТРАНСПОРТ белая вспышка в фоновом режиме?

    Как получить изображение UIImage как NSString?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.