如何在Alamofire的共享管理器中取消所有请求 [英] How to cancel all requests in Alamofire's shared manager

查看:88
本文介绍了如何在Alamofire的共享管理器中取消所有请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何取消Alamofire共享管理器中的所有请求?

How to cancel all requests in Alamofire's shared manager?

这是我的功能:

class func cancelAllRequests() {
    Alamofire.Manager.sharedInstance.session.getTasksWithCompletionHandler { (dataTasks, uploadTasks, downloadTasks) in
        self.each(dataTasks, function: self.cancel)
        self.each(uploadTasks, function: self.cancel)
        self.each(downloadTasks, function: self.cancel)
    }
}

class func cancel(index: Int, element: AnyObject) {
    if let task = element as? NSURLSessionTask {
        task.cancel()
    }
}

class func each<T>(array: [T], function: (Int, T) -> ()) {
    for (index, t) in enumerate(array) {
        function(index, array[index])
    }
}

它可以工作吗?

推荐答案

使用 NSURLSession invalidateAndCancel 方法:

manager.session.invalidateAndCancel

这篇关于如何在Alamofire的共享管理器中取消所有请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆