Swift队列组接口请求

class RecommendViewModel: NSObject {

    //懒加载    lazy var anthorGroups:[AnthorGroup] = [AnthorGroup]()

    //热门

    private lazy var hotGroup : AnthorGroup = AnthorGroup()

    //颜值

    private lazy var prettyGroup : AnthorGroup = AnthorGroup()

    //定义参数

    let prameters = ["limit":"4","offset":"0","time":NSDate.getCurrentTime()]

    func requestData(finishedCallBack:@escaping () -> ())  {

        let dGroup = DispatchGroup()

        dGroup.enter()

        AF.request("http://capi.douyucdn.cn/api/v1/getBigDataRoom", method: .get, parameters: ["time":NSDate.getCurrentTime()]).responseJSON { response in

            switch response.result{

                    case .success(let json):

                        let dict = json as! Dictionary<String, Any>

                        let arrayData = dict["data"] as! Array<AnyObject>

                self.hotGroup.tag_name = "热门"

                self.hotGroup.icon_url = "home_header_hot"

                        //3.2 获取主播数据

                        if let anthorModels = [AnthorModel].deserialize(from: arrayData){

                            for anthorModel in anthorModels{

                                self.hotGroup.anthorModels.append(anthorModel!)

                            }

                        }

                //3.4 离开组

               dGroup.leave()

                        break

                    case .failure(let error):

                        print("error:\(error)")

                        break

                    }

        }

        //请求颜值数据

        dGroup.enter()

        AF.request("http://capi.douyucdn.cn/api/v1/getHotCate", method: .get, parameters: prameters).responseJSON { response in

            switch response.result{

                    case .success(let json):

                        let dict = json as! Dictionary<String, Any>

                        let arrayData = dict["data"] as! Array<AnyObject>

                        //3.遍历数组,获取字典,将字典转成模型

                        if let groups = [AnthorGroup].deserialize(from: arrayData){

                            for group in groups{

                                let anthorModels:[AnthorModel]? = group?.room_list

                                for anthorModel in anthorModels!{

                                    group?.anthorModels.append(anthorModel)

                                }

                                

                                self.anthorGroups.append(group!)

                            }

                        }

                //3.4 离开组

                dGroup.leave()

                        break

                    case .failure(let error):

                        print("error:\(error)")

                        break

                    }

        }

        dGroup.notify(queue: DispatchQueue.main) {

            self.anthorGroups.insert(self.prettyGroup, at: 0)

            self.anthorGroups.insert(self.hotGroup, at: 0)

            finishedCallBack()

        }

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值