通过MVVM进行iOS开发,处理网络请求

MVVM架构详解
本文深入解析MVVM架构在iOS开发中的应用,强调Model、View、ViewModel各层职责,阐述网络请求处理及错误管理策略,引导开发者正确理解并实践MVVM模式。

没有使用 ReactiveCocoa, 也可以实现 MVVM 架构方式.

分别解释 MVVM 在 iOS 架构方式中的作用:

M: Model 层, 数据层, 这里做一些对基础实体的定义,数据的远程获取, 对本地数据的操作等

V: View 层, 视图展示层, 有些人倾向于将 ViewController 也放在 视图展示层, 毕竟, 抽离之后, 在 ViewController 做的事情都转移到了 ViewModel 中.

VM: ViewModel 层, 业务逻辑层, 这里处理一切与 UI 状态处理无关的业务处理.

问题1 网络请求怎么处理? 将网络请求通过 ViewModelService 来实现(后续会讲 ViewModelService), 将网络请求处理限定在 数据层去处理, 而不是业务逻辑层(ViewModel 层.) 为什么呢? 因为 ViewModel 层更加关心拿到对应的数据来做对应的显示, 比如网络请求拿回了一个实体数据, ViewModel 层直接执行对应的方法让 View 重新绘制视图既可以了.

问题 2 在使用了 ReactiveCocoa 中的网络请求, 或者是用户操作中有错误出现, 应该怎么处理? 这时推荐使用一个 热信号, 比如 RACSubject, 当有错误出现时, 对应的信号订阅者就能做出处理.

[注] 在 MVVM 模式的架构中, 应当转变一个观念: 以 ViewModel 为轮转中心, 在 MVC 中是以 ViewController 作为轮转中心实现的. 如果按照之前以 ViewController 作为轮转, 在 ViewModel 中是不可避免的导入 UIKit 的内容, 因此, 有必要找到当 ViewModel 导航时, 通知 View 层中的 ViewController 实现对应的导航操作.


not about
多频传媒

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值