相关疑难解决方法(0)

iOS Alamofire停止所有请求

有什么办法可以说:

Alamofire.Manager.cancelAllRequests()还是Alamofire.Manager.sharedInstance.cancelAllRequests()

当然,如果这些请求(特别是在图像下载的情况下)只会暂停,以便稍后我将使用相同的URL但是......我至少能够在全局级别取消所有请求,这将是很好的.一些建议?

在我的应用程序中,我有一个包装器,高于Alamofire.request(.Post ....)的处理方式,所以我真的很感激,除了上面指定的方式之外,我不会让我以另一种方式创建或与Manager类交互.

ios alamofire

19
推荐指数
3
解决办法
2万
查看次数

调用.cancel()时DispatchWorkItem不终止功能

我希望使用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。我在做什么错,如何停止执行功能?

grand-central-dispatch ios swift alamofire dispatchworkitem

4
推荐指数
1
解决办法
823
查看次数