iOS 中使用 MVVM,复杂的 Cell 的 ViewModel 应该如何去写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 中使用 MVVM,复杂的 Cell 的 ViewModel 应该如何去写相关的知识,希望对你有一定的参考价值。

参考技术A mvvm是一种架构模式,虽然不依赖其他东西,但在ios上还是会ReactiveCocoa实现起来方便一点,RAC(self. userNameLabel, text) = RACObserve(self. viewModel, userName);
比如这个,label和viewModel中的userName绑定,ViewModel中的userName改变时,userNameLabel会自动更新,而不用你手动setText

MVVM模式在iOS中常用场景

参考技术A

使用MVVM模式可以让Model--ViewModel--UI间形成绑定关系,Model数据变化可以通过VM直接更新UI;
在实际的场景,比如一些复杂的情况:

那MVVM该如何设计呢?
核心业务逻辑还是交给ViewModel处理,暴露接口给外部调用, ViewController/View 只做订阅。使用 RACSubject(ReactiveObjc)或PublishSubject(RxSwift) 来发送数据。

OC

Swift

假设同时有以下请求:用户信息、钱包信息、订单信息;拿到全部回调后才会更新UI
OC

Swift

需要先获取用户信息,再通过用户信息获取钱包信息
OC

Swift

最多允许请求失败的次数为 retryTimes ,超过 retryTimes 则停止任务,发送错误原因
OC

Swift

以上是关于iOS 中使用 MVVM,复杂的 Cell 的 ViewModel 应该如何去写的主要内容,如果未能解决你的问题,请参考以下文章

浅谈iOS中MVVM的架构设计

(IOS)关于MVVM见解与实践

iOS 开发中的 MVVM 模式——实用进阶篇(整理)

UITableViewCell中嵌套UICollectionView

iOS 中多种cell情况下的处理

MVVM模式在iOS中常用场景