如何在swift中按下取消按钮时取消下载请求

azh*_*har 2 ios nsurlsession swift

我想在取消按钮时取消下载请求.现在当我按下代码工作下载按钮

@IBAction func downloadButtonPressed(sender: UIButton) {            
                var fileName = noticeAttacchment[0]["fileName"] as! String
                var fileUrl =  noticeAttacchment[0]["fileUrl"] as! String
                if var URL = NSURL(string: fileUrl){
                    Api.load(URL, fileName: fileName)      
                }
    }
Run Code Online (Sandbox Code Playgroud)

我的下载课程是

 class Api {
    class func load(URL: NSURL , fileName : String) {
                let sessionConfig = NSURLSessionConfiguration.defaultSessionConfiguration()
                let session = NSURLSession(configuration: sessionConfig, delegate: nil, delegateQueue: nil)
                let request = NSMutableURLRequest(URL: URL)
                request.HTTPMethod = "GET"
                let task = session.dataTaskWithRequest(request, completionHandler: { (data: NSData!, response: NSURLResponse!, error: NSError!) -> Void in
                    if (error == nil) {
                        FileSave.saveData(
                            data, directory: NSSearchPathDirectory.CachesDirectory, path: fileName, subdirectory: "edstem")
                    }
                    else {
                        println("Faulure: %@", error.localizedDescription);
                    }
                })
                task.resume()
            }
    }
Run Code Online (Sandbox Code Playgroud)

那么如何在按下取消按钮时取消请求

lib*_*bec 5

你的load()函数需要returnNSURLSessionDataTask你创建的.然后task.cancel(),您可以致电取消该请求

附加参考