成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

iOS開發(fā)設計模式之MVC

本片文章介紹MVC設計模式及其在iOS開發(fā)中的使用技巧

專業(yè)領(lǐng)域包括成都網(wǎng)站設計、成都網(wǎng)站制作、商城建設、微信營銷、系統(tǒng)平臺開發(fā), 與其他網(wǎng)站設計及系統(tǒng)開發(fā)公司不同,創(chuàng)新互聯(lián)的整合解決方案結(jié)合了幫做網(wǎng)絡品牌建設經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。

  • 什么是MVC設計模式

MVC是設計模式的起源,也是在軟件工程領(lǐng)域使用最多的一種設計模式。

    MVC即:Model模型、View視圖、Controller控制器

模型:

     在模型對象中封裝數(shù)據(jù)并定義操作數(shù)據(jù)的特定邏輯行為

     模型可以表示復雜的數(shù)據(jù)結(jié)構(gòu),可以是屏幕上顯示的數(shù)據(jù)、等待處理的數(shù)據(jù)等

視圖:

     使用視圖對象向用戶展示信息

     視圖對象可以響應用戶的操作,并懂得如何將自己展現(xiàn)在屏幕上

     視圖對象通常從應用程序的模型對象中獲取數(shù)據(jù)用以展示。

     可以跟一個模型對象的部分、整體或者多個模型對象合作。

控制器:

     使用控制器將模型和視圖聯(lián)系在一起,就像視圖對象和模型對象的中間人。

     控制器對象還可以為應用程序執(zhí)行其他操作,比如管理其他對象的生命周期,進行設置和協(xié)調(diào)工作

     用戶通過從視圖對象(如在文本框中輸入)得到的值,傳給控制器對象,控制器對象也可以讓視圖對象根據(jù)此用戶操作改變其外觀或行為。

  • 模型的使用

1. 在控制器中封裝模型對象(數(shù)組)

     如果是簡單對象(如NSString),無需使用模型類進行封裝

     如果是非OC對象,則應進行一定的封裝;

     如果是詞典數(shù)據(jù),則應字典轉(zhuǎn)模型

2. 字典轉(zhuǎn)模型

     在iOS中數(shù)據(jù)的來源往往是:JSON、plist、XML等,這些數(shù)據(jù)首先轉(zhuǎn)換為字典或數(shù)組。

     為了方便管理字典中的數(shù)據(jù),采用字典轉(zhuǎn)模型的方法,以模型對象管理。

     字典的key作為模型中的屬性名

     字典中的value作為模型對象中的屬性值。

     構(gòu)造模型對象的方法中,傳遞字典對屬性進行初始化,

3. 控制器的模型數(shù)組屬性應當采取懶加載方式

     即:重寫數(shù)組的getter方法,讓模型數(shù)據(jù)在第一次被使用時加載。

     在屬性指針為nil時,從指定位置將數(shù)據(jù)加載的程序中,并創(chuàng)建數(shù)組將數(shù)據(jù)存儲到數(shù)組中。

     指定的位置可以是本地的數(shù)據(jù)庫、plist、JSON,網(wǎng)絡傳遞過來的數(shù)據(jù)等。

  • 視圖的使用

純代碼設計視圖:

    1. 定義一個視圖子類

    2. 提供類方法創(chuàng)建視圖對象

        2.1 類方法封裝alloc+init

        2.2 重寫init方法,創(chuàng)建所有的子視圖并進行一次性的屬性設定

        2.3 進行屏幕適配:重寫layoutSubviews方法或使用AutoLayout

    3. 視圖子類添加數(shù)據(jù)模型屬性并重寫setter方法將數(shù)據(jù)顯示到子視圖

    如果子視圖的數(shù)據(jù)固定可能不需要數(shù)據(jù)模型屬性

xib設計視圖:

     1. 在Xib中設計一個視圖,設計好視圖中的子控件及其相關(guān)屬性,并進行屏幕適配

     2. 定義一個視圖的子類,父類類型應當為Xib中設置的視圖類的類型,并在xib中進行關(guān)聯(lián)

     3. 提供類方法創(chuàng)建視圖對象,使用xib加載視圖對象的方式

     3. 視圖子類添加數(shù)據(jù)模型屬性并重寫setter方法將數(shù)據(jù)顯示到子視圖

     如果子視圖的數(shù)據(jù)固定可能不需要數(shù)據(jù)模型屬性

  • 控制器的使用

控制器作為視圖與模型的橋梁,應答具有以下功能:

    1. 管理視圖對象

    2. 管理模型對象(數(shù)組)

    3. 實現(xiàn)關(guān)聯(lián)的業(yè)務邏輯,如:子視圖的創(chuàng)建、模型的賦值等

    4. 處理各種復雜的業(yè)務邏輯,如:按鈕被點擊時的響應動作

控制器可分成如下幾類:

    視圖控制器:作為一個頁面的管理者

    代理控制器:用來實現(xiàn)某些對象的數(shù)據(jù)源和代理方法

    模型控制器:管理復雜的模型數(shù)據(jù),包括獲取、解析等功能

    ...

標題名稱:iOS開發(fā)設計模式之MVC
網(wǎng)站鏈接:http://jinyejixie.com/article24/pgggje.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、關(guān)鍵詞優(yōu)化、網(wǎng)站收錄、品牌網(wǎng)站設計、網(wǎng)站設計品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設
寿宁县| 江北区| 石渠县| 菏泽市| 万安县| 拜城县| 沂源县| 威信县| 平山县| 左权县| 锡林郭勒盟| 密云县| 鄂伦春自治旗| 华亭县| 塘沽区| 宁武县| 江山市| 罗源县| 光山县| 靖西县| 宾阳县| 凯里市| 长岛县| 正镶白旗| 望都县| 清徐县| 巩留县| 东明县| 中宁县| 商城县| 贺兰县| 兴化市| 库尔勒市| 丹寨县| 高台县| 巴彦淖尔市| 墨玉县| 夏邑县| 邛崃市| 塔城市| 上栗县|