Подтвердить что ты не робот

Как приостановить/возобновить/отменить мой запрос на загрузку в Alamofire

Я загружаю файл с использованием загрузки Alamofire с прогрессом, но я не знаю, как приостановить/возобновить/отменить конкретный запрос.

@IBAction func downloadBtnTapped() {

 Alamofire.download(.GET, "http://httpbin.org/stream/100", destination: destination)
     .progress { (bytesRead, totalBytesRead, totalBytesExpectedToRead) in
         println(totalBytesRead)
     }
     .response { (request, response, _, error) in
         println(response)
     }
}


@IBAction func pauseBtnTapped(sender : UIButton) {        
    // i would like to pause/cancel my download request here
}
4b9b3361

Ответ 1

Сохраните ссылку на запрос, созданный в downloadBtnTapped с свойством, и вызовите cancel для этого свойства в pauseBtnTapped.

var request: Alamofire.Request?

@IBAction func downloadBtnTapped() {
 self.request = Alamofire.download(.GET, "http://httpbin.org/stream/100", destination: destination)
}

@IBAction func pauseBtnTapped(sender : UIButton) {
  self.request?.cancel()
}

Ответ 2

request.cancel() отменяет процесс загрузки. Если вы хотите приостановить и продолжить, вы можете использовать:

var request: Alamofire.Request?

@IBAction func downloadBtnTapped() {
 self.request = Alamofire.download(.GET, "http://yourdownloadlink.com", destination: destination)
}

@IBAction func pauseBtnTapped(sender : UIButton) {
  self.request?.suspend()
}

@IBAction func continueBtnTapped(sender : UIButton) {
  self.request?.resume()
}

@IBAction func cancelBtnTapped(sender : UIButton) {
  self.request?.cancel()
}