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

            }

        }

    }

     

  • 相关阅读:
    【spring data jpa】jpa中criteria拼接in查询
    【spring boot】spring boot中使用@RestController不起作用,不返回json,依旧去找访问接口的请求地址对应的页面
    【mysql】mysql查询 A表B表 1对多 统计A表对应B表中如果有对应,则返回true否则false作为A表查询结果返回
    【redis】spring boot中 使用redis hash 操作 --- 之 使用redis实现库存的并发有序操作
    【多线程】java多线程Completablefuture 详解【在spring cloud微服务之间调用,防止接口超时的应用】【未完成】
    【docker】docker network常用命令参数
    【mysql】二级索引----聚簇索引和非聚簇索引-----
    【mysql】mysql统计查询count的效率优化问题
    SpringUtils
    idea激活
  • 原文地址:https://www.cnblogs.com/supersr/p/5364539.html
Copyright © 2020-2023  润新知