我有一个快速班级,它确实运行一个多步骤过程,就像这个问题一样:Simple GCD Serial Queue example like FIFO using blocks
所以我有一个func start()
的公共方法,然后是一堆包含该过程每个“步骤”的私有方法。
我已经和一些人讨论过这个问题,有人告诉我我不需要使用大量的完成处理程序,而可以使用串行调度队列。
但是,如果其中一些步骤运行包含其自己的队列的内容,则该方法将在其真正完成之前结束(并且下一步开始)。因此,例如,如果func step1()
使用Alamofire从API下载一些数据,并且step2()
将响应json转换为数据模型,则step1()
将在网络响应进入之前返回。这就是我最初使用回调的原因,但是有人告诉我我不需要它们吗?
我可以看到串行队列工作的唯一方法是,是否有一种方法可以在某个任务完成时手动告诉队列(没有?)。
谁能帮助我找出构建和运行此多步骤过程的最佳方法,最好不要加载嵌套的完成处理程序?
或换句话说:如果推送到队列中的某些任务将执行诸如立即返回的网络请求之类的操作,则如何使用串行调度队列。
最佳答案
您可以使用NSOperationQueue。 NSOperationQueue建立在GCD之上,专门设计用于管理许多相关的作业。
关于ios - 带有嵌套队列的串行调度队列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40388722/