對Alamofire進行封裝,模塊化處理。
一、cocoapods導入Alamofire
參照Alamofire在github是上給出的導入流程,導入Alamofire庫。如下圖所示
在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
添加代理,設置單例。變現寫相應的數據接口,以登陸為例。
實現請求失敗代理方法,發送請求失敗通知給控制器。
實現請求成功代理方法,根據服務器不同狀態,根據服務器返回的不同狀態發送通知給控制器。
三、控制器用法
在控制器即將顯示時建立觀察者
在控制器消失時消除觀察者
方法實現