具有嵌套队列的

时间:2016-11-02 19:59:40

标签: ios swift

我有一个快速的类,它运行一个多步骤的过程,就像这个问题有:Simple GCD Serial Queue example like FIFO using blocks

所以我有一个func start()的公共方法,然后是一堆包含每个"步骤"的私有方法。这个过程。

我已经和几个人谈过此事,我被告知我不需要使用大量的完成处理程序,而是可以使用串行调度队列。

但是,如果其中一些步骤运行包含其自己队列的内容,则该方法将在实际完成之前结束(并且下一步开始)。例如,如果func step1()使用Alamofire从API下载某些数据,step2()将响应json转换为数据模型,step1()将在网络响应进入之前返回。这就是为什么我最初使用的是回调,但我被告知我不需要它们?

我可以看到串行队列工作的唯一方法是,当某个任务完成时有一种手动告诉队列的方法(没有?)。

有没有人可以帮我找出构建和运行这个多步骤过程的最佳方法,最好不要加载嵌套的完成处理程序?

或换句话说:如果您推送到队列的某些任务会执行立即返回的网络请求,您如何使用串行调度队列。

1 个答案:

答案 0 :(得分:0)

您可以使用NSOperationQueue。 NSOperationQueue建立在GCD之上,专门用于管理许多相关的工作。