2014-10-10 3 views
18

Sto scaricando un file utilizzando il download di Alamofire con avanzamento ma non ho idea di come sospendere/riprendere/annullare la richiesta specifica.Come sospendere/riprendere/annullare la mia richiesta di download in 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 
} 

risposta

29

tenere un riferimento alla richiesta creata in downloadBtnTapped con una proprietà, e chiamare cancel su tale proprietà in 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() 
} 
+0

Annulla tutte le richieste? –

+2

'request.cancel()' non garantisce la cancellazione immediata della richiesta. Questo fa sì che il blocco di avanzamento venga chiamato dopo l'annullamento. Esiste un modo integrato per verificare se viene chiamato l'annullamento/sospensione? – osrl

+0

La pausa è richiesta? .suspend() O richiesta ?. Annulla() ? – Steve

16

request.cancel() annullerà l'avanzamento del download. Se si desidera mettere in pausa e continuare, è possibile utilizzare:

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

qual è la differenza tra sospensione e annullamento? è sospendere più simile alla pausa? –