swift 封裝網絡請求(Alamofire)

對Alamofire進行封裝,模塊化處理。

一、cocoapods導入Alamofire

參照Alamofire在github是上給出的導入流程,導入Alamofire庫。如下圖所示

github截圖

在Build Phases? ->? Link Binary With Libraries 中添加Alamofire.framework

二、文件結構目錄

模塊截圖

BaseModel.swift? ----- 包裝服務器數據,發送通知給控制器

ModelDelegate.swift ?------ 定義協議(請求成功、失敗協議)

ModelGlobals.swift ?------- 定義關鍵字

RemoteDataResolver.swift ?-------- 網絡請求

UserModel.swift ----- 繼承BaseModel,主要定義與用戶相關的API

1、BaseModel.swift

在init方法中初始化NotificationCenter.

文件截圖

發送請求成功并且服務器沒有返回錯誤提示發送通知方法

文件截圖

發送請求成功,服務器返回錯誤提示發送通知方法

文件截圖

發送請求失敗發送通知方法

文件截圖

2、ModelDelegate.swift

文件截圖

3、ModelGlobals.swift

文件截圖

文件中相關字段定義根據項目的需要自行進行定義。

4、RemoteDataResolver.swift

添加Alamofire庫,進行單例定義,初始化隊列,為了保證線程要給隊列加鎖。

文件截圖

構建請求字典

文件截圖

構建請求字典,接口參數帶有api_token方法

文件截圖

用數組模擬隊列進行網絡請求,上鎖來維護線程安全。保證網絡請求按順序進行。

文件截圖
文件截圖
文件截圖

5、UserModel.swift

添加代理,設置單例。變現寫相應的數據接口,以登陸為例。

文件截圖

實現請求失敗代理方法,發送請求失敗通知給控制器。

文件截圖

實現請求成功代理方法,根據服務器不同狀態,根據服務器返回的不同狀態發送通知給控制器。

文件截圖

三、控制器用法

在控制器即將顯示時建立觀察者

文件截圖

在控制器消失時消除觀察者

文件截圖

方法實現

文件截圖
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容