swift集成alamofire的简单封装

import UIKit

import Alamofire

 

enum MethodType{

    case GET

    case POST

}

 

class NetworkTool: NSObject {

 

    class func request(type : MethodType ,urlString : String , paramters: [String :Any]? = nil,finishedCallback : @escaping (_ result : Any) -> ()) {

       

        //判断是什么类型的请求

        let method = type == .GET ? HTTPMethod.get : HTTPMethod.post

        

        // 发送网络请求

        Alamofire.request(urlString , method: method, parameters: paramters).responseJSON { (response) in

            

            guard let result = response.result.value else{

                print(response.result.value)

                return

            }

            

            // 回调

            finishedCallback(result as AnyObject)

        }

    }

}

 

 

//---

import UIKit

 

class BaseVM: NSObject {

 

    

    lazy var anchorGroups: [AnchorGroup] = [AnchorGroup]()

    func loadAnchorGroupData(isLiveData : Bool, URLString : String, parameters : [String : Any]? = nil, finishedCallback : @escaping () -> ()) {

        NetworkTool.request(type: .GET, urlString: URLString, paramters: parameters) { (result) in

            guard let dict = result as? [String : Any] else { return }

            if isLiveData {

                guard let dictionary = dict["data"] as? [String : Any] else { return }

                self.anchorGroups.append(AnchorGroup(dict: dictionary))

            } else {

                guard let arr = dict["data"] as? [[String : Any]] else { return }

                for dict in arr {

                    self.anchorGroups.append(AnchorGroup(dict: dict))

                }

            }

            finishedCallback()

        }

    }

    

    // MARK: - items, total

    lazy var searchGroup: [SearchModel] = [SearchModel]()

    func loadSearchData(URLString : String, parameters : [String : Any]? = nil, finishedCallback : @escaping () -> ()) {

        NetworkTool.request(type: .GET, urlString: URLString, paramters: parameters) { (result) in

            guard let dict = result as? [String : Any] else { return }

            guard let dictionary = dict["data"] as? [String : Any] else { return }

            self.searchGroup.append(SearchModel(dict: dictionary))

            finishedCallback()

        }

    }

}

 

posted @ 2016-04-07 17:32  super1250  阅读(270)  评论(0编辑  收藏  举报