1.首先,我们来了解下什么是MVVM框架
这张图网上找的,感觉比较贴合iOS的MVVM框架。
View| ViewController:1.处理用户Touch事件比如点击,长按,滑动等。2.展示ViewModel处理反馈的数据。
ViewModel:负责业务逻辑、封装网络处理、封装数据缓存。
Model:API请求的原始数据。
那么它相比MVC,有什么优势呢?有过1-2年iOS编程经验的人都会发现,使用原始的MVC框架,当团队人数多的时候,就会发现大家采用了五花八门的数据传递模式比如Delegate,Notification,Bolcks,单例模式等,当其他同事维护你的代码的时候用加入自己常用的模式,在加上所有业务都在Controller中处理,此时Controller的类就变的非常臃肿和杂乱,随着项目时间的推移,人才的更新迭代,原本的项目维护效率就越来越低,所以MVVM就诞生了,层次清晰,各模块职责明确,在加上RAC对iOS原始touch事件,delegate,kvo等机制的封装,整个项目的开发和后期维护效率都相当的高。
2.CocoaPods 的安装和使用以及ReactiveCocoa框架的导入
ReactiveCocoa一个iOS的第三方框架下面简称RAC。这里我们采用CocoaPods工具来导入RAC开源库。对于CocoaPods的安装使用以及怎么导入RAC,论坛有很多详细讲解,这里就不加说明,就简单贴入两篇别人的博客地址。
最新版CocoaPods的使用与安装-以导入ReactiveCocoa框架为例
在CocoaPods安装好后,简单的说就是
Podfile文件写入
platform:ios,'8.0'
target 'MVVMWithReactiveCocoa' do
pod 'ReactiveCocoa', '~> 2.5'
end
终端控制台执行:pod install
我这里已经导入了2.5版本的RAC如下截图:
我们在工程目录下就可以看到RAC的源码如下图
本文主要利用RAC搭建MVVM框架,对于RAC源码原理研究在这里就不作讲解,后续会讲解下RAC的常用方法。
3.项目引入RAC框架
引入RAC框架,这个还是用预编译文件全局引用比较方便,本人放在了Supporting Files虚拟目录下。
3.1 操作
选中 Supporting Files文件夹,右击->New File->Other->PCH File->Next 输入文件名称创建。
3.2在PrefixHeader.pch 中加入如下代码
#import <ReactiveCocoa/ReactiveCocoa.h>
#import <ReactiveCocoa/RACEXTScope.h>
贴图:
3.3 配置预编译文件路径
好了,到目前为止你的项目已经正常使用RAC框架了。
4.项目结构
1.在搭建我们MVVM框架之前,咱们先给自己的项目构建一个结构吧,以方便代码的阅读以及模块的迁移,本人喜欢在项目中建虚拟文件映射到项目中的真实文件夹(当然也看需求,模块具体划分),先简单创建下基础结构,后续随着模块需求在进行增加。
到此,本节已经接近尾声了,下一节我们讨论下RAC的一些常用类以及方法使用,也算为后续的MVVM框架打下基础。
交流沟通邮箱:gdlwork2013@163.com