iOS开发设计模式之MVC-创新互联

本片文章介绍MVC设计模式及其在iOS开发中的使用技巧

创新互联建站是一家专注于网站设计制作、做网站与策划设计,陕西网站建设哪家好?创新互联建站做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:陕西等地区。陕西做网站价格咨询:18980820575
  • 什么是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. 处理各种复杂的业务逻辑,如:按钮被点击时的响应动作

控制器可分成如下几类:

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

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

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

    ...

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

当前标题:iOS开发设计模式之MVC-创新互联
标题路径:https://www.cdcxhl.com/article28/dhhdcp.html

成都网站建设公司_创新互联,为您提供建站公司外贸网站建设移动网站建设动态网站微信公众号微信小程序

广告

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

成都定制网站建设