无码专区一区人妻|人妻系列一区二区播放|国产免费牲交大片高清|日韩黄色无码一区二区三区|久久精品国产亚洲二区三区|欧美综合在线一区二区三区|精品无码国产自产拍在线观看蜜|999zyz精品视频在线播放

您當(dāng)前的位置 :寧夏資訊網(wǎng) > 資訊 >  內(nèi)容正文
投稿

玩轉(zhuǎn)斗魚直播APP——請(qǐng)求展示推薦數(shù)據(jù)篇

寧夏資訊網(wǎng) 2020-06-26 04:45:09 來源: 閱讀:-

請(qǐng)求推薦數(shù)據(jù)

請(qǐng)求方式: AFNetworking&Alamofire?

  • 目前在iOS開發(fā)中, 請(qǐng)求網(wǎng)絡(luò)數(shù)據(jù), 我們經(jīng)常會(huì)使用第三方框架. 而比較出名的莫過于AFNetworking

  • 不過AFNetworking是使用OC開發(fā)的框架,作者又專門針對(duì)Swift開發(fā)了另外一個(gè)框架就是:Alamofire。

  • 因?yàn)槲覀冊(cè)擁?xiàng)目是Swift版本,所有直接采用Alamofire

    • 注:其實(shí)Alamofire非常強(qiáng)大,不過我們這里只是發(fā)送請(qǐng)求,使用起來是非常方便的。

集成Alamofire

  • 在iOS開發(fā)中,如果我們集成一個(gè)第三方框架,通常會(huì)使用Cocoapods

  • 因此,我們這里通過Cocoapods進(jìn)行集成

  • 找到項(xiàng)目所在目錄:

    玩轉(zhuǎn)斗魚直播APP——請(qǐng)求展示推薦數(shù)據(jù)篇

  • 打開終端:

    • 進(jìn)入項(xiàng)目目錄,執(zhí)行:pod init操作

      玩轉(zhuǎn)斗魚直播APP——請(qǐng)求展示推薦數(shù)據(jù)篇

    • 之后會(huì)生成Profile文件,打開Profile文件(記事本、Xcode打開即可,推薦Xcode打開)

    • 將下面代碼粘貼過去

      玩轉(zhuǎn)斗魚直播APP——請(qǐng)求展示推薦數(shù)據(jù)篇

    • 回到終端,執(zhí)行pod install --no-repo-update命令

      玩轉(zhuǎn)斗魚直播APP——請(qǐng)求展示推薦數(shù)據(jù)篇

    • 關(guān)閉程序,通過工作空間打開項(xiàng)目

      玩轉(zhuǎn)斗魚直播APP——請(qǐng)求展示推薦數(shù)據(jù)篇

玩轉(zhuǎn)斗魚直播APP——請(qǐng)求展示推薦數(shù)據(jù)篇

工具類的封裝

  • 在實(shí)際開發(fā)中,為了不過于依賴某一個(gè)第三方框架,我們經(jīng)常會(huì)在使用的方式封裝到某一個(gè)工具類中,以便于某天該框架不更新時(shí)不至于很多地方都需要修改。

    • 比如之前的ASIHTTPRequest就出現(xiàn)了不更新的情況

  • 因此,我們?cè)谑褂弥跋确庋b一個(gè)簡(jiǎn)單的工具類。之后在其它任何地方發(fā)送網(wǎng)絡(luò)請(qǐng)求,都依賴于自己的工具類。如果某一天該框架不再更新,我們希望更換框架,只修改工具類中代碼即可。

  • 創(chuàng)建工具類:NetworkTools

    • 為工具類提供類方法,方便調(diào)用

    • 請(qǐng)求時(shí),需要傳入請(qǐng)求方式、地址(URL)、參數(shù)(parameters)、回調(diào)閉包

    • 在請(qǐng)求方法中,使用Alamofire發(fā)送網(wǎng)絡(luò)請(qǐng)求

玩轉(zhuǎn)斗魚直播APP——請(qǐng)求展示推薦數(shù)據(jù)篇

MVVM介紹

  • 前面環(huán)境配置完成后,我們要請(qǐng)求首頁數(shù)據(jù)。

  • 數(shù)據(jù)請(qǐng)求在哪里發(fā)送了?

MVC模式

  • Model-View-Controller是一個(gè)Apple官方推薦的權(quán)威范式。

    • 蘋果使用的MVC的定義是這么說的:所有的對(duì)象都可以被歸類為一個(gè)model,一個(gè)view,或是一個(gè)controller。

  • 那么把網(wǎng)絡(luò)代碼放哪里?

    • 我們知道,因?yàn)榭刂破魇且粋€(gè)大管家,那么不知道如何安放的代碼就放置在控制器中

    • 是的,傳統(tǒng)的MVC方式我們經(jīng)常這么做。

  • 該做法的弊端在哪里?

    • 由于大量的代碼被放進(jìn)view controller,導(dǎo)致控制器變的相當(dāng)臃腫。

    • 在iOS開發(fā)中有的view controller里綿延成千上萬行代碼的事并不是前所未見的

    • 厚重的View Controller很難維護(hù)(由于其龐大的規(guī)模);包含幾十個(gè)屬性,使他們的狀態(tài)難以管理;遵循許多協(xié)議(protocol),導(dǎo)致協(xié)議的響應(yīng)代碼和controller的邏輯代碼混淆在一起。

  • 那么究竟應(yīng)該放在哪里?

    • 顯然MVC的3大組件根本沒有適合放這些代碼的地方。

      玩轉(zhuǎn)斗魚直播APP——請(qǐng)求展示推薦數(shù)據(jù)篇

MVVM模式

  • MVVM來自微軟。和MVC很像,并且引入新的組件ViewModel

    • view model是一個(gè)放置用戶輸入驗(yàn)證邏輯,視圖顯示邏輯,發(fā)起網(wǎng)絡(luò)請(qǐng)求和其他各種各樣的代碼的極好的地方。

    • 由于展示邏輯放在了view model中(比如網(wǎng)絡(luò)請(qǐng)求、請(qǐng)求后的數(shù)據(jù)解析等等),視圖控制器本身就會(huì)不再臃腫。

  • 因此,該項(xiàng)目中的請(qǐng)求數(shù)據(jù),統(tǒng)一交給ViewModel管理。每一個(gè)控制器對(duì)應(yīng)一個(gè)屬于自己的ViewModel。

    玩轉(zhuǎn)斗魚直播APP——請(qǐng)求展示推薦數(shù)據(jù)篇

發(fā)送網(wǎng)絡(luò)請(qǐng)求

接口解析

  • 在推薦的數(shù)據(jù)展示中,有三個(gè)請(qǐng)求

    • 最熱數(shù)據(jù)請(qǐng)求

    • 顏值數(shù)據(jù)請(qǐng)求

    • 其它數(shù)據(jù)請(qǐng)求

  • 因此我們需要分別發(fā)送三個(gè)請(qǐng)求,并且當(dāng)所有的請(qǐng)求數(shù)據(jù)拿到之后,對(duì)數(shù)據(jù)進(jìn)行整理分組排序。(因?yàn)榻缑嬷杏杏玫椒纸M)

  • 因此請(qǐng)求分成五步曲

    • 請(qǐng)求游戲數(shù)據(jù),并且轉(zhuǎn)成模型對(duì)象

    • 請(qǐng)求顏值數(shù)據(jù),并且轉(zhuǎn)成模型對(duì)象

    • 請(qǐng)求熱門數(shù)據(jù),并且轉(zhuǎn)成模型對(duì)象

    • 對(duì)數(shù)據(jù)進(jìn)行整理,并且放入大的數(shù)組中

    • 將數(shù)據(jù)傳遞給外面控制器,展示數(shù)據(jù)

接口描述

  • 接口名稱:熱門數(shù)據(jù)(后面熱門游戲)

  • 接口地址:http://capi.douyucdn.cn/api/v1/getHotCate

  • 請(qǐng)求參數(shù):

參數(shù)名稱參數(shù)說明
time獲取當(dāng)前時(shí)間的字符串
limit獲取數(shù)據(jù)的個(gè)數(shù)
offset偏移的數(shù)據(jù)量
  • 接口名稱:顏值數(shù)據(jù)(第二組顏值數(shù)據(jù))

  • 接口地址:http://capi.douyucdn.cn/api/v1/getVerticalRoom

  • 請(qǐng)求參數(shù):

參數(shù)名稱參數(shù)說明
time獲取當(dāng)前時(shí)間的字符串
limit獲取數(shù)據(jù)的個(gè)數(shù)
offset偏移的數(shù)據(jù)量
  • 接口名稱:大數(shù)據(jù)數(shù)據(jù)(第一組熱門數(shù)據(jù))

  • 接口地址:http://capi.douyucdn.cn/api/v1/getbigDataRoom

  • 請(qǐng)求參數(shù):

參數(shù)名稱參數(shù)說明
time獲取當(dāng)前時(shí)間的字符串

玩轉(zhuǎn)斗魚直播APP——請(qǐng)求展示推薦數(shù)據(jù)篇
玩轉(zhuǎn)斗魚直播APP——請(qǐng)求展示推薦數(shù)據(jù)篇
玩轉(zhuǎn)斗魚直播APP——請(qǐng)求展示推薦數(shù)據(jù)篇

展示數(shù)據(jù)

普通數(shù)據(jù)展示(文本數(shù)據(jù))

  • 將數(shù)據(jù)回調(diào)給控制器后,控制器拿到數(shù)據(jù)展示數(shù)據(jù)即可

    • 將Cell中的控件拖入屬性

    • 定義模型對(duì)象

  • 在控制器中拿到模型,并且將模型傳入給Cell進(jìn)行展示

圖片數(shù)據(jù)展示

  • 在設(shè)置網(wǎng)絡(luò)圖片時(shí),OC中經(jīng)常使用SDWebImage框架。

  • 相同的原因,我們使用的Swift項(xiàng)目,因此這里我使用onevcat, 也就是喵神寫的Kingfisher

  • 在Profile中加入框架, 并且執(zhí)行安裝命令

    • pod install —no-repo-update

玩轉(zhuǎn)斗魚直播APP——請(qǐng)求展示推薦數(shù)據(jù)篇

  • 使用代碼

玩轉(zhuǎn)斗魚直播APP——請(qǐng)求展示推薦數(shù)據(jù)篇

更多資訊歡迎登陸520it.com。小碼哥社區(qū),編程愛好者的家園。

(正文已結(jié)束)

推薦閱讀:筆記本性價(jià)比排行

免責(zé)聲明及提醒:此文內(nèi)容為本網(wǎng)所轉(zhuǎn)載企業(yè)宣傳資訊,該相關(guān)信息僅為宣傳及傳遞更多信息之目的,不代表本網(wǎng)站觀點(diǎn),文章真實(shí)性請(qǐng)瀏覽者慎重核實(shí)!任何投資加盟均有風(fēng)險(xiǎn),提醒廣大民眾投資需謹(jǐn)慎!

網(wǎng)站簡(jiǎn)介 - 聯(lián)系我們 - 營(yíng)銷服務(wù) - XML地圖 - 版權(quán)聲明 - 網(wǎng)站地圖TXT
Copyright.2002-2019 寧夏資訊網(wǎng) 版權(quán)所有 本網(wǎng)拒絕一切非法行為 歡迎監(jiān)督舉報(bào) 如有錯(cuò)誤信息 歡迎糾正