iOS开发设计模式之MVC

本片文章介绍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. 处理各种复杂的业务逻辑,如:按钮被点击时的响应动作

控制器可分成如下几类:

    视图控制器:作为一个页面的管理者

    代理控制器:用来实现某些对象的数据源和代理方法

    模型控制器:管理复杂的模型数据,包括获取、解析等功能

    ...

标题名称:iOS开发设计模式之MVC
网站链接:https://www.cdcxhl.com/article24/pgggje.html

成都网站建设公司_创新互联,为您提供外贸建站关键词优化网站收录品牌网站设计网站设计品牌网站制作

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设