MVVM(block回调形式) 自我认识

本文介绍了作者使用MVVM设计模式的实际经验,详细阐述了如何在iOS应用中通过SCHMvvmViewController和SCHMvvmViewModel实现数据请求、处理及回调,并对比了与传统MVC模式的不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一直以来用MVC,今天用了一下MVVM设计模式,至于MVVM是什么,其他技术大牛的博客,简书等都说的非常深刻,像我这样的虾兵蟹将就不啰嗦了哈,只想说一下自己用的过程和使用MVVM模式的心得。 首先我创建了要用MVVM模式的模块的文件夹,如图所示

这里写图片描述
个人感觉这样分层级更容易理解,ViewModel负责做三件事:
(1)封装业务逻辑
(2)封装网络处理
(3)封装数据缓存
在这里我用了‘封装’二字,下面我来详细的说一下我的整个过程,大家可能就理解我为什么用封装二字了。
一:创建了了类SCHMvvmViewController,是主控制器。在主控制器里面我创建了tableView,相信大家也很熟悉了。
现在开始进行数据请求,上面说过ViewModel负责封装数据,现在在ViewModel文件夹下创建继承于NSObject的类SCHMvvmViewModel。
二:在SCHMvvmViewModel里面进行数据处理,我用来测试的数据是微博的列表(微博开放的api:
https://api.weibo.com/2/statuses/public_timeline.json),
首先声明了一个方法,给主控制器调用,在这个方法的实现里面开始请求并处理数据,至于网络请求工具,用的是自己项目里面的工具。我用的MJExtension处理数据,模型是在model文件夹下创建的SCHMvvmModel。请求成功,数据处理完毕后,要把数据通过block回调给主控制器,声明两个block,成功回调,失败回调,及声明方法。
这里写图片描述
三:在这里我封装了一个继承于NSObject的类SCHMvvmClassModel,是存放上面SCHMvvmViewModel的回调的block以及回调方法,这样所有模块的MVVM的ViewModel都可以继承,共用一套回调方法。故上面的SCHMvvmViewModel修改继承自SCHMvvmClassModel。
SCHMvvmViewModel.h
SCHMvvmViewModel.m
SCHMvvmClassModel.h
SCHMvvmClassModel.m
四:现在回到主控制器,刷新tableView。
初始化SCHMvvmViewModel 并调用block函数
五:这样整个MVVM模式的block回调形式就完成啦。这样主控制器与MVC模式下的controller 轻便很多。而ViewModel就是一些代码的封装,然后回调的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值