无线客户端框架设计(3):基类的设计(iOS篇)
本文代码:YoungHeart-Chapter-03.zip
没有基类的App都不是好App。
因为iOS使用的是mvc模式的开发模式,所以,业务逻辑基本都在每个页面相应的ViewController中。这些页面有很多相同的逻辑,所以,我们有必要设计一个BaseViewController基类,将这部分共有逻辑抽象到基类中。
具体是哪些相同的逻辑呢?
1)重新规划页面的生命周期——第4篇文章会专门介绍.
2)iOS处理内存警告——在讲到内存优化的时候,会介绍。
3)作为跳转器的目标页,接收传递来的参数——在讲到导航器的时候,会介绍。
4)页面初始化时,需要清除控件上的假数据——在讲到UI框架设计的时候,会介绍。
5)进度条的加载和隐藏——在讲到进度条的时候,会介绍。
6)显示提示信息——在讲到进度条的时候,会介绍。
7)网络请求的失败情况的统一处理——在讲到网络请求的时候,会介绍
8)IPhone适配——在讲到适配器的时候,会介绍。
纵观以上8点,我们发现,有些是框架级别的,比如1、2、3,而4-8,则和具体的App相关。换做其它App时,4-8的实现可能是不一样的。所以我们有必要在MyLib项目中建立一个顶级的BaseViewController基类,包括1、2、3的实现。而在MyApp项目中,建立AppBaseViewController基类,让它继承自BaseViewController,并实现4-8的逻辑。在MyApp项目中的所有ViewController,都继承自AppBaseViewController。
以上8点,会在接下来相应的章节进行介绍,我们会在具体的章节添加相应的基类方法。而在本文,我们的基类,暂时是空的。
无线客户端框架设计(3):基类的设计(iOS篇)的更多相关文章
- BIM工程信息管理系统-EF实体框架数据操作基类
EF实体框架数据操作基类主要是规范增.改.查.分页.Lambda表达式条件处理,以及异步操作等特性,这样能够尽可能的符合基类这个特殊类的定义,实现功能接口的最大化重用和统一. 1.程序代码 /// & ...
- 无线客户端框架设计(5.1):将JSON映射为实体对象(iOS篇)
iOS开发人员已经习惯于将JSON转换为字典或者数组来进行操作了,接下来我要做的事情,可能匪夷所思,但是,对WP和Android开发人员而言,他们更倾向于将JSON转换为实体对象进行操作. 我所设计的 ...
- 无线客户端框架设计(4):自定义生命周期的设计(iOS篇)
首先要确定一点,我们的App,要基于XIB文件进行编程,而不是在每个相应的ViewController里面去手动创建页面的每个控件.这样做的好处是,将页面布局与业务逻辑彻底隔离.于是我们可以把xib的 ...
- Python+Selenium框架设计之框架内封装基类和实现POM
原文地址https://blog.csdn.net/u011541946/article/details/70269965 作者:Anthony_tester 来源:CSDN 博客地址https ...
- 无线客户端框架设计(2):项目结构的设计(iOS篇)
本文附带源码:YoungHeart-Chapter-02.zip 在设计任何一个框架之前,都应规划好项目结构. 假定Git作为我们的项目管理工具.我们要建立两个仓库,一个用于存放我们的框架,另一个用于 ...
- EF实体框架数据操作基类(转)
//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司 ...
- Winform框架中窗体基类的用户身份信息的缓存和提取
在Winform开发中,有时候为了方便,需要把窗体的一些常规性的数据和操作函数进行封装,通过自定义基类窗体的方式,可以实现这些封装管理,让我们的框架统一化.简单化的处理一些常规性的操作,如这里介绍的用 ...
- 无线客户端框架设计(5):调用MobileAPI的设计(iOS篇)
这一节讲如何发起网络请求. iOS用于调用MobileAPI的第三方组件很多,我们这里采用的是以下组件: 1)ASIHTTPRequest,用于请求MobileAPI:http://allseeing ...
- iOS控制器之基类设计
题记 在进入新公司后.经过这一个月的重构项目,终于把项目做到了个人相对满意的程度(还有一种不满意的叫老板的需求,提过多次意见也没用= =!).在这次重构中按照以前的思路设计出了个人觉得比较适用的一个基 ...
随机推荐
- DIOCP之获取在线用户列表
通过获取tcpserver.getonlinecontextlist来得到在线列表 procedure TfrmMain.btn_refreshClick(Sender: TObject);var l ...
- php设计模式学习之观察者模式
什么都不说,先看代码: interface userOperateImpl { public function operate($username); } class userLoginLog imp ...
- PHP declare(ticks=N); 的作用
一般用法是 declare(ticks=N);拿declare(ticks=1)来说,这句主要作用有两种: 1.Zend引擎每执行1条低级语句就去执行一次 register_tick_function ...
- fiddler的使用
查看fiddler监听的端口: tools=>fiddler options=>connections=>fiddler listens on port 8888 如果想抓curl发 ...
- iis+php+mysql
来源:http://www.ttjcnet.com/forum.php?mod=viewthread&tid=137&extra= 首先下载php-5.2.0-win32.zip,my ...
- Mispelling 1510
#include<iostream>#include<string>#include<cstdio>using namespace std;int main(){ ...
- React Native填坑之旅--Button篇
从React过来,发现React Native(以下简称RN)居然没有Button.隔壁的iOS是有UIButton的,隔壁的隔壁的Android里也是有的.没有Button,就没有点击效果啊.这还真 ...
- T4模板之初体验(语法)
一.什么是T4模板 T4是Text Template Transformation Toolkit(文本模板转换工具包)的四个英文首字母的简称.是微软提供的一种代码生成引擎. 在ADO.NET实体数据 ...
- Mat 转 IplImage
Mat 转 IplImage 分类: OpenCV2013-06-02 17:00 1487人阅读 评论(0) 收藏 举报 Mat 转 IplImage Mat image1; IplImage *i ...
- [2013 Final] Colors
Description Ziyao has a big drawing board with N * M squares. At the beginning, all the squares on t ...