本片文章介绍MVC设计模式及其在iOS开发中的使用技巧
什么是MVC设计模式
MVC是设计模式的起源,也是在软件工程领域使用最多的一种设计模式。
MVC即:Model模型、View视图、Controller控制器
模型:
在模型对象中封装数据并定义操作数据的特定逻辑行为
模型可以表示复杂的数据结构,可以是屏幕上显示的数据、等待处理的数据等
视图:
使用视图对象向用户展示信息
视图对象可以响应用户的操作,并懂得如何将自己展现在屏幕上
视图对象通常从应用程序的模型对象中获取数据用以展示。
可以跟一个模型对象的部分、整体或者多个模型对象合作。
控制器:
使用控制器将模型和视图联系在一起,就像视图对象和模型对象的中间人。
控制器对象还可以为应用程序执行其他操作,比如管理其他对象的生命周期,进行设置和协调工作
用户通过从视图对象(如在文本框中输入)得到的值,传给控制器对象,控制器对象也可以让视图对象根据此用户操作改变其外观或行为。
模型的使用
1. 在控制器中封装模型对象(数组)
如果是简单对象(如NSString),无需使用模型类进行封装
如果是非OC对象,则应进行一定的封装;
如果是词典数据,则应字典转模型
2. 字典转模型
在iOS中数据的来源往往是:JSON、plist、XML等,这些数据首先转换为字典或数组。
为了方便管理字典中的数据,采用字典转模型的方法,以模型对象管理。
字典的key作为模型中的属性名
字典中的value作为模型对象中的属性值。
构造模型对象的方法中,传递字典对属性进行初始化,
3. 控制器的模型数组属性应当采取懒加载方式
即:重写数组的getter方法,让模型数据在第一次被使用时加载。
在属性指针为nil时,从指定位置将数据加载的程序中,并创建数组将数据存储到数组中。
指定的位置可以是本地的数据库、plist、JSON,网络传递过来的数据等。
视图的使用
纯代码设计视图:
1. 定义一个视图子类
2. 提供类方法创建视图对象
2.1 类方法封装alloc+init
2.2 重写init方法,创建所有的子视图并进行一次性的属性设定
2.3 进行屏幕适配:重写layoutSubviews方法或使用AutoLayout
3. 视图子类添加数据模型属性并重写setter方法将数据显示到子视图
如果子视图的数据固定可能不需要数据模型属性
xib设计视图:
1. 在Xib中设计一个视图,设计好视图中的子控件及其相关属性,并进行屏幕适配
2. 定义一个视图的子类,父类类型应当为Xib中设置的视图类的类型,并在xib中进行关联
3. 提供类方法创建视图对象,使用xib加载视图对象的方式
3. 视图子类添加数据模型属性并重写setter方法将数据显示到子视图
如果子视图的数据固定可能不需要数据模型属性
控制器的使用
控制器作为视图与模型的桥梁,应答具有以下功能:
1. 管理视图对象
2. 管理模型对象(数组)
3. 实现关联的业务逻辑,如:子视图的创建、模型的赋值等
4. 处理各种复杂的业务逻辑,如:按钮被点击时的响应动作
控制器可分成如下几类:
视图控制器:作为一个页面的管理者
代理控制器:用来实现某些对象的数据源和代理方法
模型控制器:管理复杂的模型数据,包括获取、解析等功能
...
本文出自 “teacherAn” 博客,请务必保留此出处http://annmeng.blog.51cto.com/3321237/1746499
原文地址:http://annmeng.blog.51cto.com/3321237/1746499