Подтвердить что ты не робот

Пример внедрения/примера MVVM в iOS

Как кто-нибудь реализовал шаблон MVVM в вашем приложении iOS без использования ReactiveCocoa?

Здесь найдено множество примеров, но все они используют Reactive Cocoa. Мне нужен простой пример реализации MVVM.

4b9b3361

Ответ 1

Реактивный Cocoa определенно не требуется для MVVM. Я создал очень успешную структуру MVVM без каких-либо привязок. Привязки не являются обязательными для MVVM.

В частности, связь между View Model и View требует, чтобы View Model выдавала сигнал View, чтобы он обновлял свои данные. Это может быть достигнуто с помощью Reactive Cocoa, KVO (мне действительно нравится Facebook KVOController) или даже с использованием простого шаблона делегата.

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

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

Теперь вам нужно только заботиться о том, как этот метод запускается. В моих личных рамках я использую KVO, а мои ViewControllers контролируют свойство timestamp на базовом уровне ViewModel. В любое время, когда мои модели просмотра обновляют свои базовые данные, обновляется его метка времени, которая запускает обновление. Вы также можете легко зарегистрировать контроллер View как делегат обновления ViewModel и использовать стандартный шаблон делегирования.

Опять же, MVVM не касается конкретных требований к реализации, а больше о концепции более высокого уровня разделения проблем, развязки зависимостей и инкапсуляции.

Ответ 2

Я провел некоторое тестирование на MVVMSwiftSample

Ответ 3

Я создал MVVM Design Pattern в Swift POP с использованием подхода KVC. вы можете проверить, нравится ли вам это, это было бы моим удовольствием на GitHub.

https://github.com/AbhimanyuForiOS/ASMVVM Счастливое кодирование!