美文网首页
iOS学习记录之MVVM+RAC

iOS学习记录之MVVM+RAC

作者: Eric苏离 | 来源:发表于2016-03-31 16:33 被阅读258次

最近在开始学习MVVM, 感觉比较好理解,可是应用起来, 总是有点脱离不了MVC的思考模式.

从最简单的开始, 比如现在我们要完成这样的一个项目: 开发简书的APP(只搭建其中的三个界面 --- 首页, 评论页面, 以及详情界面, 还有一个就是登陆界面), 如果可以, 我真的很想把简书的接口提供给大家,但是为了只是知识产权, 我还是不能把接口给大家, 不过, 我还是可以给大家一个JSON的数据, 以便大家自己来亲手敲敲这个代码.以便实现我们的学习.

MVVM ---- 在这里我先假设你已经有了对MVVM的了解, 如果对MVVM还不是很了解的话, 你可以直接跳到本文的最下面的连接, 有一些博客或者文章来介绍MVVM.认真读完这些文章, 然后我们在一起开始我们的MVVM的学习.

SRModel.h

<code>
//作者名称
@property (nonatomic, copy)NSString *author;
//类型
@property (nonatomic, copy)NSString *category;
//评论数
@property (nonatomic, copy)NSString *comment;
@property (nonatomic, copy)NSString *create_time;
@property (nonatomic, copy)NSString *excerpt;
@property (nonatomic, copy)NSString *good
@property (nonatomic, copy)NSString *thumbnail;
@property (nonatomic, copy)NSString *title;
@property (nonatomic, copy)NSString *view;
</code>

按照MVC的模式, 我们应该写一个单例, 单例里面写上数据请求方法, 然后给tableViewController赋值.

遇到的第一个问题:
首页是个tableViewController, tableView上有cell(重用), 怎么让viewModel给这些cell提供数据, 并且来监听cell上的事件呢?
我在网上搜索了一些其他的博客, 并没有找到心中觉得合适的答案.所以, 我就只能自己去理解.
我觉得可以给SRViewModel设置一些子ViewModel, 比如就叫SRCellViewModel, 用SRCellViewModel来对cell提供数据以及管理cell的交互事件.

在这里,还有一个小细节问题, 就是图片视图的问题, UIImageView需要一个UIImage对象(数据), 可是UIImage是基于UIKit框架的,那么我是否应该在SRCellViewModel里面导入UIKit框架?添加一个UIImage的属性,用来给UIImageView视图赋值呢? 我看到网上其他的博客上有的人说可以这样做, 有的人也说, 最好不要这样做.
我认真的想了想, 基于MVVM的设计思想, VM负责的视图的表示逻辑, 是给View提供数据并深刻与View交互,帮助VC减负, 同时更加有利于进行测试以及代码的复用来考虑, 所以,我觉得最好还是不要把UIKit框架导入ViewModel, 也就是说, 不要设置ViewModel的属性有一个UIImage的对象的.

建议使用以下的方法:

SRCellView.m -- bindViewModel
<code>
[self.avatarImageView sd_setImageWithURL:viewModel.avatarURL];
</code>

最后附上学习MVVM的相关连接:

http://yulingtianxia.com/blog/2015/05/21/ReactiveCocoa-and-MVVM-an-Introduction/

希望, 大家看完这些连接后, 我们来继续我们的学习;

相关文章

  • iOS学习记录之MVVM+RAC

    最近在开始学习MVVM, 感觉比较好理解,可是应用起来, 总是有点脱离不了MVC的思考模式. 从最简单的开始, 比...

  • 2018-11-12

    iOS MVVM+RAC 从框架到实战 - 简书

  • MVVM

    iOS MVVM+RAC 从框架到实战 【长篇高能】ReactiveCocoa 和 MVVM 入门 iOS 最全R...

  • 2019-12-10

    iOS MVVM+RAC 从框架到实战 http://www.cocoachina.com/articles/18659

  • iOS 学习心得记录之:拿到了ViewController就等于

    iOS 开发心得记录之:拿到了ViewController就等于拿到了view 在学习开发 iOS 的时候,我有时...

  • iOS学习之入门组件化

    iOS学习之入门组件化 iOS学习之入门组件化

  • iOS逆向学习

    参考文章:iOS逆向开发记录:iOS逆向之手机越狱iOS逆向之介绍iOS逆向之文件系统结构iOS逆向之文件权限及类...

  • iOS 设置statusBar

    一、前言 之前在《iOS MVVM+RAC 从框架到实战》中介绍了一下MVVM下的框架基类,其中的ViewCont...

  • UITableView

    iOS之UITableView略解IOS学习(15)-UITableView

  • iOS开发之MVVM+RAC架构模式

    在说MVVM之前,首先要了解我们最常用的MVC设计模式⬇️ 1.MVC设计模式 苹果官方将MVC设计模式作为iOS...

网友评论

      本文标题:iOS学习记录之MVVM+RAC

      本文链接:https://www.haomeiwen.com/subject/zdwelttx.html