iOS中的Model-View-ViewModel模式

MVVM设计模式的组成部分

要了解ios中的mvvm,我们将举一个简单的示例,从url下载用户数据并将其显示在UI上。

用于示例应用程序的网址:https://jsonplaceholder.typicode.com/todos

响应:

  [ 
{
“ userId”:1
“ id”:1
“ title”:“ delectus aut autem”,
“已完成”:false
},
{
“ userId”:1
“ id”:2
“ title”:“ quis ut nam facilis et officia qui”,
“已完成”:false
},
{
“ userId”:1
“ id”:3,
“ title”:“ fugiat veniam minus”,
“已完成”:false
}

MVVM架构

模型 :模型对象封装了特定于应用程序的数据,并定义了处理和处理该数据的逻辑和计算。模型对象可能与其他模型具有一对一或一对多的关系。

ViewModel :ViewModel处理驱动视图的业务逻辑,它拥有如上图所示的数据模型,由View / viewcontroller拥有,并提供要在UI上显示的输出。

View / ViewController :View是屏幕上的ui组件,该视图仅包含UI逻辑,例如数据渲染,导航等。该视图拥有viewmodel。

要传达以下更新,可以使用以下选项

  1. 使用委托和协议
  2. 使用块
  3. 使用通知

我们将使用块来交流示例应用程序中的更新。

快速使用的模型将具有以下结构。

模型用户确认可解码协议,因为使用json解码器对其进行解码非常方便。

ViewModel:

ViewModel拥有一个Web客户端,该客户端负责api通讯,并使用块将更改更新到ViewController

而已! 整个项目位于:https://github.com/ashusharma046/MVVM_IOS/tree/master/MvvmDemo