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

没有使用 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
多频传媒

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值