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

            }

        }

    }

     

  • 相关阅读:
    React使用iconfont图标下载到本地symbol引用
    【汇编】求100以内的素数asm
    jQuery Ajax.BeginForm方法回调函数高版本3.3.1不兼容问题
    python中的深拷贝与浅拷贝
    闲来无事做个C#小项目——2
    C#使用MD5加密
    数据结构部分总结(c语言版)
    vue 上传视频和图片 并且截取视频第一帧作为播放前默认图片
    vue el-cascader取id和lable的值
    C# 枚举的定义,枚举的用法,获取枚举值
  • 原文地址:https://www.cnblogs.com/supersr/p/5364539.html
Copyright © 2020-2023  润新知