zoukankan      html  css  js  c++  java
  • 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()

            }

        }

    }

     

  • 相关阅读:
    webstorm实现手机预览页面
    git 远端版本回退
    Vue开发中的移动端适配(px转换成vw)
    测试web-view,实现小程序和网页之间的切换
    mysql 字符集研究
    Openssl
    Android Activity 去掉标题栏及全屏显示
    Android中的 style 和 theme
    Android sharedPreferences 用法
    Vim 字符集问题
  • 原文地址:https://www.cnblogs.com/supersr/p/5364539.html
Copyright © 2011-2022 走看看