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()

            }

        }

    }

     

  • 相关阅读:
    vue 移动端项目,动态控制div距离底部的距离
    输入一个整形数组,求数组中连续的子数组使其和最大
    事件冒泡、组织事件冒泡、以及组织默认行为
    vuex存储和本地存储的区别
    Uncaught TypeError: Cannot read property 'offsetTop' of undefined at VueComponent.handleScroll
    js悬浮吸顶
    Python爬虫之爬取煎蛋网妹子图
    Python框架-pygal之世界地图
    Python框架-pygal之雷达图
    Python框架-pygal之饼图
  • 原文地址:https://www.cnblogs.com/supersr/p/5364539.html
Copyright © 2011-2022 走看看