Понимание шаблона MVC, используемого в приложениях для iOS - PullRequest
22 голосов
/ 15 апреля 2011

Я прочитал статью MVC от Apple и меня смущают разные вещи. Во-первых, Apple использует комбинацию View и Controller почти во всех своих типовых приложениях, что хорошо, и мне это нравится, но в этой статье они противоречат самим себе, поскольку утверждают, что View не должны полагаться на контроллеры и т. Д.

Мой главный вопрос: есть ли у кого-нибудь ссылка на один из примеров проектов Apple для iOS, который является хорошим примером шаблона MVC - с извлечением данных и т. Д., Потому что я не полностью понимаю часть модели этого шаблона.

Я не понимаю разницу между «доменным объектом» и модельным объектом. Например, если бы я хотел получить список заказов, это произошло бы в модельном классе Orders. Будет ли тогда у меня другой класс Order, который имеет такие свойства, как OrderDate, OrderNumber и т. Д., Или как это будет работать?

Ответы [ 5 ]

12 голосов
/ 15 апреля 2011

Этот пример кода демонстрирует многоэтапный подход к загрузке и отображению UITableView.Я думаю, что это действительно интересно погрузиться. Это покажет MVC в работах.

7 голосов
/ 01 марта 2014

Вот как шаблон Model-View-Controller (также известный как MVC) сопоставляется с основными частями вашего приложения:

Модель → Данные

Вид → Интерфейс пользователя

Контроллер → Core Logic

это объясняется полностью с примером кода

http://www.hollance.com/2011/04/making-your-classes-talk-to-each-other-part-1/

enter image description here

5 голосов
/ 30 марта 2015
  • Модель является мозгом приложения.Он выполняет расчеты и создает для себя виртуальный мир, который может жить без представлений и контроллеров.Другими словами, думайте о модели как о виртуальной копии вашего приложения, без лица!

  • A view - это окно, через которое ваши пользователи взаимодействуют с вашимприложение.Он отображает то, что находится внутри модели большую часть времени, но в дополнение к этому он принимает взаимодействия пользователей.Любое взаимодействие между пользователем и вашим приложением отправляется в представление, которое затем может быть захвачено контроллером представления и отправлено в модель.

  • Контроллеры в iOSПрограммирование обычно относится к контроллеру представления.Думайте о контроллерах представления как о мосте между моделью и вашими представлениями.Они интерпретируют то, что происходит на одной стороне (то, что пользователь делает на стороне просмотра, или информацию, представленную моделью) и используют эту информацию для изменения другой стороны по мере необходимости.

5 голосов
/ 05 октября 2011

Я полагаю, что следующий код поможет вам понять, как работать с MVC в приложении iOS, потому что его описание гласит:

"MVCNetworking - это пример, который показывает, как создать сетевое приложение с использованием Шаблон проектирования Model-View-Controller . В частности, он отображает фотогалерею, получая XML-описание галереи, эскизы и фотографии с веб-сервера, и использует базовые данные для локального кэширования этой информации. "

http://developer.apple.com/library/ios/#samplecode/MVCNetworking/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010443

3 голосов
/ 21 марта 2015

Это, безусловно, лучшее, но простое объяснение, с которым я столкнулся (взято из RayWenderlich)

"Идея, стоящая за MVC, заключается в том, что
- ПРОСМОТРАМ следует заботиться только о том, как они представлены КАКОНИ ПРЕДСТАВЛЯЮТСЯ,
- МОДЕЛИ должны заботиться только о своих ДАННЫХ,
- и КОНТРОЛЛЕРЫ должны работать, чтобы жениться на двух без необходимости знать слишком много об их внутренней структуре. "

...