我有一个快速的类,它运行一个多步骤的过程,就像这个问题有:Simple GCD Serial Queue example like FIFO using blocks
所以我有一个func start()
的公共方法,然后是一堆包含每个"步骤"的私有方法。这个过程。
我已经和几个人谈过此事,我被告知我不需要使用大量的完成处理程序,而是可以使用串行调度队列。
但是,如果其中一些步骤运行包含其自己队列的内容,则该方法将在实际完成之前结束(并且下一步开始)。例如,如果func step1()
使用Alamofire从API下载某些数据,step2()
将响应json转换为数据模型,step1()
将在网络响应进入之前返回。这就是为什么我最初使用的是回调,但我被告知我不需要它们?
我可以看到串行队列工作的唯一方法是,当某个任务完成时有一种手动告诉队列的方法(没有?)。
有没有人可以帮我找出构建和运行这个多步骤过程的最佳方法,最好不要加载嵌套的完成处理程序?
或换句话说:如果您推送到队列的某些任务会执行立即返回的网络请求,您如何使用串行调度队列。