国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

IOS開發(fā)--第三階段--微博(2)(微博MVC)

2019-11-14 19:21:50
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

 

MVC設(shè)計(jì)模式

設(shè)計(jì)模式:前人總結(jié)的經(jīng)驗(yàn)、方法和工具

委托、觀察者、單例  工廠

Model-View-Controller 模型-視圖-控制器

在iOS開發(fā)中應(yīng)用較為廣泛的設(shè)計(jì)模式

 

Model 模型 處理數(shù)據(jù)或者處理業(yè)務(wù)邏輯

View 視圖 程序與用戶交互的界面,用戶可以看到它的存在

Controller 控制器 處理用戶交互的 負(fù)責(zé)視圖和模型之間的數(shù)據(jù)及請(qǐng)示的傳遞

 

Controller-View Controller-Model

View跟Model之間沒(méi)有直接的操作

 

 

View:webView

Model:request sina

controller:ViewCtroller

 

用戶點(diǎn)擊了View View將用戶操作傳遞給了控制器、控制器讓Model更新、Model操作過(guò)之后 通知控制器我搞定了 控制器去刷新UI

 

 

區(qū)別于DAO設(shè)計(jì)模式 DAO其實(shí)只是相當(dāng)于MVC中Model的功能 

 

授權(quán)

access_token 

TimeLineViewController 公共微博

 

M:ZYSinaEngine 負(fù)責(zé)跟新浪相關(guān)、請(qǐng)求模塊

V:ZYLoginWebView 負(fù)責(zé)展示授權(quán)界面 以供用戶交互

C:ZYTimeLineViewController 負(fù)責(zé)管理V以及V上數(shù)據(jù)的展示 V和M之間的數(shù)據(jù)以及請(qǐng)求的傳遞

 

類與類/(對(duì)象與對(duì)象)之間交互:1、通知 2、代理(協(xié)議) 3、PRoperty:需創(chuàng)建對(duì)象

 

 

按照MVC來(lái)設(shè)計(jì)代碼

新建ZYLoginWebView繼承于UIView

在ZYLoginWebView.h中添加webView屬性

在ZYLoginWebView的初始化方法中 創(chuàng)建初始化webView 并添加

 

 

設(shè)置代理 導(dǎo)入?yún)f(xié)議 實(shí)現(xiàn)兩個(gè)協(xié)議方法

重寫layoutSubviews方法 方法中設(shè)置webView的frame

讓webView加載請(qǐng)求 請(qǐng)求歸M管 新建Model類ZYSinaEngine 

在ZYSinaEngine類中添加加號(hào)方法(方便)authorizeReuqest返回一個(gè)請(qǐng)求

authorizeReuqest方法實(shí)現(xiàn)時(shí) 需要很多新浪創(chuàng)建的應(yīng)用的參數(shù) 而且參數(shù)會(huì)多次用到 所以宏定義在ZYSinaEngine中

 

 

在ZYLoginWebView.h中定義 ****- (void)loadAuthorizeRequest:(NSURLRequest *)request;

在TimeLineViewController中 創(chuàng)建并初始化ZYLoginWebView 然后 加載請(qǐng)求

在webView代理方法中接收code

 

 

接收到code后 需要告訴TimeLineViewController 使用協(xié)議

因?yàn)槭荶YLoginWebView想給別人傳信息 所以在ZYLoginWebView中應(yīng)該有一個(gè)委托對(duì)象屬性id<協(xié)議名> delegate

在ZYLoginWebView中寫協(xié)議方法 并且在.m中調(diào)用協(xié)議方法

NSError的構(gòu)成

TimeLineViewController實(shí)現(xiàn)代理方法 拿到code

 

 

在ZYSinaEngine中 聲明一個(gè)實(shí)例方法 根據(jù)code請(qǐng)求accesstoken

拿到token后 告訴Controller拿到accesstoken 使用協(xié)議

因?yàn)槭荶YSinaEngine想給別人傳信息 所以在ZYSinaEngine中應(yīng)該有一個(gè)委托對(duì)象屬性 id<協(xié)議名> delegate

 

 

在ZYSinaEngine中寫協(xié)議方法 并且在.m中使用代理對(duì)象調(diào)用協(xié)議方法 因?yàn)閰f(xié)議方法為可選方法 所以應(yīng)加判斷 代理對(duì)象是否存在且是否可以相應(yīng)代理方法

TimeLineViewController實(shí)現(xiàn)代理方法 拿到access_token

在ZYSinaEngine中 聲明一個(gè)實(shí)例方法 根據(jù)accesstoken請(qǐng)求公共微博數(shù)據(jù)

拿到數(shù)據(jù)后 解析 告訴Controller拿到數(shù)據(jù) 使用協(xié)議 可以使用ZYSinaEngineDelegate

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 集贤县| 息烽县| 张家川| 商南县| 星座| 泾川县| 纳雍县| 丹棱县| 罗平县| 新丰县| 西畴县| 广河县| 洛川县| 西丰县| 濮阳县| 莆田市| 田东县| 航空| 唐海县| 和林格尔县| 浦东新区| 米易县| 乃东县| 南昌市| 乌拉特中旗| 和田县| 山阳县| 永修县| 海丰县| 建水县| 阳江市| 商南县| 长白| 安康市| 乌鲁木齐县| 渭源县| 昌平区| 中西区| 淳安县| 汶川县| 阜城县|