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

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

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

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

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

最新文章

  1. BZOJ 2648 SJY摆棋子 ——KD-Tree
  2. nested exception is org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element &#39;beans&#39;.
  3. 由单例模式学到:volatile关键字
  4. Jfinal中log4j的配置
  5. jquery学习以及下载链接
  6. leetcode 211. Add and Search Word - Data structure design Trie树
  7. js学习要点
  8. “百度杯”CTF比赛 九月场_SQL
  9. TCP/IP的四元组、五元组、七元组
  10. oracle 常见查询题
  11. lanya
  12. 一个致命的 Redis 命令,导致公司损失 400 万!!
  13. 伪造请求IP
  14. WebStorm破解方法
  15. DP-动态规划算法实例:拿糖果问题
  16. kotlin学习(二)——类
  17. tabindex属性用法
  18. CSS隐藏多余的文字
  19. 【Mybatis】Mybatis的sql模糊查询
  20. sql 服务器链接远程 sql 服务器 脚本

热门文章

  1. Kudu Tablet design
  2. php中配置伪静态
  3. Nodejs计时器定时执行函数
  4. c#ArrayList 对象集合 按某字段(属性)排序
  5. 启动和停止GlassFish Server
  6. Linux mysql 基础操作
  7. 零基础逆向工程35_Win32_09_临界区_CRITICAL_SECTION结构
  8. position:fixed相对父级元素定位而不是浏览器
  9. Debug get/set property
  10. 【Microsoft Azure学习之旅】消息服务Service Bus的学习笔记及Demo示例