十分鐘搭建主流框架:簡單的網路部分

發表於2015-11-27

本節主題(簡單的網路部分)

  • 原始碼地址在文章末尾
  • 達成效果


注:本文API使用HaoService資料平臺

前言

  • 廢話不說了,簡單來說,行動網路很重要,下面讓我們來實現一個簡單的Demo:對網路資料的請求,並接收與展示吧。注意:是簡單的!很簡單的!

準備工作

1.檔案目錄結構示圖(按照MVC分層)

  • Controller: CYXOneViewController
  • Model: CYXMenu
  • View: CYXCell

2.使用cocoapods整合第三方框架

注:這裡就直接使用cocoapods外掛安裝第三方框架了

  • 這裡要使用到的三方框架包括AFNetworking、MJExtension、SDWebImage

框架用途簡介

  • AFNetworking:用於傳送網路請求
  • MJExtension:用於把網路返回的JSON格式資料轉換為模型屬性
  • SDWebImage:用於下載網路圖片

基本思路簡述

1.在CYXOneViewController中使用AFNetworking傳送GET請求,得到伺服器返回的JSON格式的資料
2.使用MJExtension把JSON格式的資料轉為模型CYXMenu對應的屬性
3.在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;方法內根據索引indexPath.row把每一行Cell的Model屬性傳遞給自定義Cell(CYXCell)
4.在自定義Cell(CYXCell)內接收模型資料並初始化Cell的內部控制元件
5.不要忘記在AFN框架內的GET請求成功呼叫的block中重新整理TableView的資料

詳細實現 上程式碼

第一步:設計模型屬性(CYXMenu.h),這裡的屬性名根據API文件設計,本Demo只是使用了其中幾個簡單的

 

第二步:自定義cell(這裡使用Xib了)

2.1 拖控制元件到Xib中(見檔案目錄結構圖)
2.2 在CYXCell.h中定義一個模型屬性,用於供外界(CYXOneViewController)訪問並傳遞模型進來。

 

 

2.3 在CYXCell.m中實現menu屬性的- (void)setMenu:(CYXMenu *)menu方法,將取到的menu模型值給cell自身的控制元件賦值
由於這裡需要通過URL下載網路圖片,使用到了SDWebImage框架

 

 

第三步,到這裡我們需要在CYXOneViewController.m內實現 網路資料請求/JSON資料轉模型/給自定義cell傳遞模型資料 的操作

 

到這裡只是簡單實現了網路資料的請求,還有很多細節,例如下拉/上拉重新整理,、cell的點選事件等等,有時間再討論了。

附:原始碼github地址

相關文章