How to cancel all requests in Alamofire's shared manager

白昼怎懂夜的黑 提交于 2019-12-10 17:35:08

问题


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

This is my function:

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])
    }
}

Can it works?


回答1:


Use NSURLSession's invalidateAndCancel method:

manager.session.invalidateAndCancel



回答2:


This is for Swift 4.0 and Alamofire Version 4.5

Alamofire.SessionManager.default.session.getAllTasks{ $0.forEach{ $0.cancel() } }


来源:https://stackoverflow.com/questions/27486326/how-to-cancel-all-requests-in-alamofires-shared-manager

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!