之前都在用YTKNetwork進行的開發, 剛接觸swift的時候,發現使用Alamofire還是有點不太方便的, 請求的代碼都寫在了控制器里, 太冗余了.于是就寫了一個類似于YTKNetwork的小工具.
直接上代碼. 首先要做的是對Alamofire進行一層封裝,一是更方便使用, 二是以后更換網絡框架的時候,更輕松.
QQ20160614-0.png
我們新建一個工具類單例,繼承自Alamofire.Manager,
可以看到我們先定義了一個Finshied閉包,用于處理網絡請求的回調.
然后是初始化方法.
接著是兩個請求函數, 第一個只是設置了一個固定url,其實調用的是第二個函數. 而第二個函數也很簡單,就是使用managerde的request方法.去發送請求, 然后再通過finished把結果傳到外面.
然后我們再創建一個請求基類:
QQ20160614-1.png
內部也很簡單,就是一個參數字典, 以及一個發送請求的函數. 這個函數會把參數字典和finished閉包作為參數,然后調用網絡工具的請求方法.
我們以后的請求只要繼承自這個基類,例如我在聚合上申請了一個接口,是查看全國油價的,現在我想創建一個查看油價的請求:
QQ20160614-3.png
我們的init方法接受一個key,然后把key添加到參數字典.
最后外界的調用是這樣的:
QQ20160614-4.png
生成一個請求變量,調用sendRequest方法,然后把要做的事情寫在finished這個閉包里面.
github上demo的地址:https://github.com/byljbdh/ALNModelNetworkTool
以上.