iOS开发设计模式之MVC-创新互联-成都快上网建站

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-创新互联
网页路径:http://kswjz.com/article/dhhdcp.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流