晚上我遇到以下问题:
我的应用是基于网络的应用。它从 API 下载数据,您可以通过不同的tableViews
显示结果。
当加载 LandingPage 时,应用程序开始下载数据。通过许多异步任务下载数据。
我希望用户无法使用该应用,直到数据全部下载为止,显示activity indicator
。
我想在页面加载后立即显示活动指示符,而不是在调用异步闭包时停止它。
问题是像5个异步函数,每个异步任务都会使其他异步任务。
有没有办法了解是否有异步任务正在运行,如果是,显示指标,如果没有:停止指标?
或者,有更好的设计模式可以实现这一目标吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
正如@rmaddy建议我使用GroupDispatch
首先,我创建了 GroupDispatch对象。
对于每次异步通话,我已将groupDispatch
对象作为parameter
传递,并且在函数内部使用group.enter()
,因此每次该功能都是叫它进入组内。
在关闭过程中,我使用了group.leave()
方法。
最后,我已经使用group.notify
在完成所有异步调用时收到通知。
完美无缺!