博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift集成alamofire的简单封装
阅读量:6981 次
发布时间:2019-06-27

本文共 1810 字,大约阅读时间需要 6 分钟。

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

        }

    }

}

 

转载于:https://www.cnblogs.com/supersr/p/5364539.html

你可能感兴趣的文章
React Native微信支付开发爬坑之旅
查看>>
年轻人的第一篇博客
查看>>
使用 Vue + Flask 搭建单页应用
查看>>
10分钟免费开启全站https
查看>>
《js高程》 基本概念 上
查看>>
Sketch 快捷键
查看>>
javascript闭包,你大爷永远是你大爷
查看>>
android社会化分享
查看>>
PHPer面试指南-前言
查看>>
git 常用命令行
查看>>
前端面试——初(H)入(T)江(M)湖(L)
查看>>
支付宝小程序面向个人开放了!我将以一个 Demo 为例讲解整个流程。
查看>>
javascript 总结笔记
查看>>
WinForm连接数据库
查看>>
大快网站:如何选择正确的hadoop版本
查看>>
hadoop需要哪些技术支持
查看>>
赵童鞋带你入门PHP(六) ThinkPHP框架入门
查看>>
Java中断机制
查看>>
JS笔记(20): JS中的同步编程和异步编程
查看>>
Vue +Element Ui 使用Upload组件实现多图片上传
查看>>