-1
我有這樣一個簡單的要求:Alamofire取消有時不工作
func newRequest() {
println("CANCEL = \(self.getTime())")
self.request_.cancel()
self.request_ = request(method, url)
validate(statusCode: [200])
.validate(contentType: ["application/json"])
.responseJSON { [unowned self] (_, _, json, error) in
if(error?.code == NSURLErrorCancelled) {
println("CANCELED!")
}
println("DONE LOADING = \(self.getTime())")
// ...
}
}
如上圖所示,在調用新的請求時,我想以前被取消。 它通常有效,但有時當前一個請求即將結束(日誌之間的時間很短)時,它不會。
(newRequest) CANCEL = 1436103465.93128
// CANCELED! SHOULD BE HERE
(previousRequest) DONE LOADING = 1436103466.08223
爲了使它工作,我添加了一個var isCanceled並檢查它是否設置爲true。 我不確定它是否可以正常工作(取消它可能太遲了),或者它是一個小錯誤。