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。
要传达以下更新,可以使用以下选项
- 使用委托和协议
- 使用块
- 使用通知
我们将使用块来交流示例应用程序中的更新。
快速使用的模型将具有以下结构。
模型用户确认可解码协议,因为使用json解码器对其进行解码非常方便。
ViewModel:
ViewModel拥有一个Web客户端,该客户端负责api通讯,并使用块将更改更新到ViewController
而已! 整个项目位于:https://github.com/ashusharma046/MVVM_IOS/tree/master/MvvmDemo