美文网首页
Swift 顺序执行请求网络数据

Swift 顺序执行请求网络数据

作者: 善良的karl | 来源:发表于2019-08-24 21:39 被阅读0次

现实的iOS开发中,经常会遇到一个控制器有多个网络请求的情况,而这些网络请求我们又需要控制一下返回的先后顺序。比如说请求任务一成功以后,需要拿到任务一的数据去请求任务二,再拿到任务二请求的数据去请求任务三,此时,就需要控制一下网络请求的返回顺序。经过查找资料,我现在采用添加队列任务的方式来实现。代码如下

import UIKit

class ViewController: UIViewController {
    //定义一个全局的主队列变量
    let group = OperationQueue.main

    override func viewDidLoad() {
        super.viewDidLoad()
        //向队列里面添加第一个请求任务
        group.addOperation(request1())
        print("------------")
    }
    //第一个请求任务
    func request1() -> BlockOperation{
        let request = BlockOperation {
            /**
             这里写第一个网络请求方法
             */
            //第一个请求完成以后向队列里面添加任务2
            print("我是任务---1")
            print(Thread.current)
            self.group.addOperation(self.request2())
        }
        return request
    }
    //第二个请求任务
    func request2()  -> BlockOperation {
        let request = BlockOperation {
            /**
             这里写第二个网络请求方法
             */
            //第二个请求完成以后向队列里面添加任务3
            print("我是任务---2")
            print(Thread.current)
            self.group.addOperation(self.request3())
        }
        return request
    }
    //第三个请求任务
    func request3() -> BlockOperation {
        let request = BlockOperation {
            /**
             这里写第三个网络请求方法
             */
            print("我是任务---3")
            print(Thread.current)
        }
        return request
    }
}

本人刚开始学习swift语言,如果写的有不合适的地方,请各位大神进行批评指正哈。

相关文章

网友评论

      本文标题:Swift 顺序执行请求网络数据

      本文链接:https://www.haomeiwen.com/subject/acxqectx.html