国产午夜男女在线|欧美日本一道高清国产|亚洲日韩乱码中文字幕|麻豆国产97在线精品一区|日韩一区2区三区另类图片|亚洲精品国产99在线观看|亚洲国产午夜福利精品大秀在线|一级做a爰片性色毛片免费网站

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

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

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

請求推薦數(shù)據(jù)

請求方式: AFNetworking&Alamofire?

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

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

  • 因為我們該項目是Swift版本,所有直接采用Alamofire

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

集成Alamofire

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

  • 因此,我們這里通過Cocoapods進行集成

  • 找到項目所在目錄:

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

  • 打開終端:

    • 進入項目目錄,執(zhí)行:pod init操作

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

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

    • 將下面代碼粘貼過去

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

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

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

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

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

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

工具類的封裝

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

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

  • 因此,我們在使用之前先封裝一個簡單的工具類。之后在其它任何地方發(fā)送網(wǎng)絡(luò)請求,都依賴于自己的工具類。如果某一天該框架不再更新,我們希望更換框架,只修改工具類中代碼即可。

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

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

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

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

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

MVVM介紹

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

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

MVC模式

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

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

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

    • 我們知道,因為控制器是一個大管家,那么不知道如何安放的代碼就放置在控制器中

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

  • 該做法的弊端在哪里?

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

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

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

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

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

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

MVVM模式

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

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

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

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

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

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

接口解析

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

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

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

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

  • 因此我們需要分別發(fā)送三個請求,并且當(dāng)所有的請求數(shù)據(jù)拿到之后,對數(shù)據(jù)進行整理分組排序。(因為界面中有用到分組)

  • 因此請求分成五步曲

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

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

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

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

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

接口描述

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

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

  • 請求參數(shù):

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

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

  • 請求參數(shù):

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

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

  • 請求參數(shù):

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

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

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

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

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

    • 將Cell中的控件拖入屬性

    • 定義模型對象

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

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

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

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

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

    • pod install —no-repo-update

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

  • 使用代碼

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

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

(正文已結(jié)束)

推薦閱讀:筆記本性價比排行

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

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