有什么办法可以说:
Alamofire.Manager.cancelAllRequests()还是Alamofire.Manager.sharedInstance.cancelAllRequests()?
当然,如果这些请求(特别是在图像下载的情况下)只会暂停,以便稍后我将使用相同的URL但是......我至少能够在全局级别取消所有请求,这将是很好的.一些建议?
在我的应用程序中,我有一个包装器,高于Alamofire.request(.Post ....)的处理方式,所以我真的很感激,除了上面指定的方式之外,我不会让我以另一种方式创建或与Manager类交互.
我希望使用Alamofire runTask()能够停止的功能列表中的一系列HTTP请求是使用Alamofire依次发出的。因此,我为需要运行的每个任务设置了一个runTask()函数调用DispatchWorkItem,并将工作项存储在数组中,如下所示:
taskWorkItems.append(DispatchWorkItem { [weak self] in
concurrentQueue!.async {
runTask(task: task)
}
})
Run Code Online (Sandbox Code Playgroud)
然后,我迭代工作项的数组并按如下所示调用perform()函数:
for workItem in taskWorkItems {
workItem.perform()
}
Run Code Online (Sandbox Code Playgroud)
最后,我的应用程序中有一个按钮,当点击该按钮时,我想取消工作项,并且使用以下代码来实现这一目的:
for workItem in taskWorkItems {
concurrentQueue!.async {
workItem.cancel()
print(workItem.isCancelled)
}
}
Run Code Online (Sandbox Code Playgroud)
workItem.isCancelled打印到true; 但是,我在调用的函数中设置了日志,runTask()即使workItem.cancel()被调用和workItem.isCancelled打印,我仍然看到函数正在执行true。我在做什么错,如何停止执行功能?