ios MVVM實踐 重新整理網路請求+tableView展示資料

來源:互聯網
上載者:User

標籤:實踐   manager   格式   它的   架構   網路請求   get   方法   ken   

先展示實現的如下:

 

此樣本展示用的是MVVM結構形式,表述如下 

M:資料Model的儲存,可以用來對屬性進行處理。(即胖model概念,中xx萬人訂閱這個處理方法寫在Model內)

V: View。用來統一管理控制項初始化與布局。

VM:viewModel。負責網路請求及其他計算或事件處理

 

目錄結構如下:

viewController檔案夾下有一個控制器和一個MLDataView,這個view添加在控制器self.view上,然後這個控制器中其他view的初始化,添加和布局都在這個MLDataView裡進行,這樣把View分離整合到了一起。

MLDataViewModel裡負責了網路請求,tableView代理和資料來源方法的實現,及其他一些事件邏輯的封裝。傳統MVC一般這些代碼都是放在控制器內,現在這樣大量減少了控制器的代碼。

MLDataModel裡儲存傳輸的資料,它也可以用來處理一些格式化的資料。如

這樣model也可以分擔一些屬性的格式化處理。

 

整體架構上的一些其他封裝:

1.自訂MLHTTPSessionManager繼承自AFHTTPSessionManager,可以在自訂的類裡優雅地處理要求標頭,回應標頭或https設定相關的一些資訊

2.網路請求擴充性強:自己公司的網路請求實現檔案裡邏輯要多得多,包括Token失效,重新整理RefreshToken,網路請求錯誤碼的攔截等。這些業務都可以根據自己的需要加入。

3.MLCustomHud彈出toast提示。實用性非常強。

4.Base檔案夾下有兩個類,其實企業及項目基本都會建立基類,也就是所以view都可以有一個基類,如tableView,UIlabel,UIButton,WKWebView,UITableViewCell等等,然後可以在基類中建立一些快捷方法設定屬性等。

5.Category檔案夾下Unicode裡的代碼為了實現nslog無法輸出中文的問題。

6.Category下UIView+HudCount分類,用runTime對view進行引用計數。它的專屬優勢在於防止多個網路請求同時發生時對Loading框產生幹擾,即可防止loading框重疊或提前消失。

 

最後附上demo地址:

碼雲:https://gitee.com/LiJinShi/MVVM_Demo

gitHub:https://github.com/LiJinShi/MVVM_Demo

 

ios MVVM實踐 重新整理網路請求+tableView展示資料

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.