Как приостановить/возобновить/отменить мой запрос на загрузку в 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
}
Ответы
Ответ 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()
}