博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
写给iOS小白的MVVM教程(序)
阅读量:5986 次
发布时间:2019-06-20

本文共 1526 字,大约阅读时间需要 5 分钟。

  hot3.png

这几天,需要重构下部分代码,这里简要记录下.但是涉及的技术要点还是很多,所以分为多个篇章叙述.此教程来源于,并将于应用于实践,不做过多的概念性阐释和争论.每个篇章都会附上实际的可执行的代码.因涉及的技术点,有许多探索的部分,暂定每两天更新一个篇章.欢迎广大iOS同行,批评指正!

教程内容,按更新顺序排序

  • : 结合实际的例子,提出并应用一种从MVC迁移到MVVM的可行性方案.
  • : 此处会结合RestKit,提出并制作一个可直接应用于代码的网络请求实现方案,支持自动翻页,自动配置URL与数据模型的关联关系等.
  • : 会涉及到使用Leancloud做服务器端,使用marddown库解析markdwon内容,一个更加实际的MVVM各技术细节的具体实现技巧.

定义良好的接口,是成功的第一步!

////  YFMVVMDelegate.h//  iOS122////  Created by 颜风 on 15/10/13.//  Copyright (c) 2015年 iOS122. All rights reserved.//#import 
@protocol YFMVVMRequestDelegate;/** * MVVM协议,用于规定MVVM模式的基本约定. * * 常用于约定"V",此处的V,指的是视图的载体,或者是连接点.可以是一个View,也可以是一个控制器,或者任意NSObject对象. */@protocol YFMVVMDelegate
@required@property (nonatomic, strong) id model; //!< 数据模型,用于表示从外部传入的数据.@property (nonatomic, strong, readonly) id viewModel; //!< 数据模型,用于表示直接在视图上显示的数据模型.@optional@property (nonatomic, strong) id
request; //!< 网络请求.用于联网动态更新数据.@end/** * 用于规定MVVM中的request网络请求的协议. */@protocol YFMVVMRequestDelegate
@required/** * 获取数据. * * @param component MVVM组件中的V部分,可以是一个View,也可以是一个控制器,或者任意NSObject对象. * @param success 请求成功时的回调.会把视图模型回调出去. * @param failure 请求失败时的回调.会把错误信息回调出去. */-(void) get: (id
) component success: (void (^)(id))success failure:(void (^)(NSError *))failure;@optional/** * 重置页码,从头刷新. * * 下次调用 get:success:failure 方法时,会获取最新的数据. */-(void) reset;/** * 移动到下一页. * * 下次调用 get:success:failure 方法时,会获取下一页的数据. */-(void) nextPage;@end

转载于:https://my.oschina.net/ios122/blog/516676

你可能感兴趣的文章
【LeetCode从零单排】No189 .Rotate Array
查看>>
记一个简单的保护if 的sh脚本
查看>>
使用Merge存储引擎实现MySQL分表
查看>>
Spark通过YARN提交任务不成功(包含YARN cluster和YARN client)
查看>>
Win10系列:C#应用控件基础7
查看>>
PowerDesigner导出word,PowerDesigner把表导出到word,PDM导出word文档
查看>>
线程安全和线程不安全的区别
查看>>
2602 最短路径问题Dihstra算法
查看>>
SUSE(Linux操作系统)
查看>>
设计模式之策略模式
查看>>
HDU 5312(数学推导+技巧)
查看>>
手游产品经理初探(三)产品中的玩家行为
查看>>
Java-idea-Checkstyle自动化代码规范检查
查看>>
HDU5312 Sequence
查看>>
遇见未知的CSS
查看>>
HDU 5273 区间DP
查看>>
HDU 5366:The mook jong 递推
查看>>
iOS_40_核心动画
查看>>
WCF 客户端 BasicHttpBinding 兼容 HTTPS 和 HTTP
查看>>
字符串截取mysql
查看>>