当快速按下取消button时如何取消下载请求

我想取消下载请求,当我按取消button。 现在当我按下面的代码下载button的作品

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

而我的下载类是

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

那么如何取消按下取消button时的请求

你的load()函数需要return你创build的NSURLSessionDataTask 。 然后调用task.cancel()来取消请求

额外的参考