4

Alamofire の共有マネージャーですべてのリクエストをキャンセルするには?

これは私の機能です:

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

それは機能しますか?

4

3 に答える 3

2

NSURLSessioninvalidateAndCancelメソッドを使用します。

manager.session.invalidateAndCancel
于 2014-12-15T17:57:30.000 に答える
0

Alamofire バージョン 5.0 以降では、SessionManager は Session に置き換えられました。使うだけ

Session.default.cancelAllRequests()

によって作成された、現在実行中のすべてのリクエストをキャンセルしますAF.request()

于 2021-03-11T10:32:49.790 に答える