1

我試圖取消異步請求,如果與互聯網連接有問題。iOS Swift - NSURLConnection.sendAsynchronousRequest取消請求

var connection: NSURLConnection! 
self.connection = NSURLConnection.sendAsynchronousRequest(request2, queue: NSOperationQueue.mainQueue()) 
{ 

    (response, data, error) in(); 
    if(response != nil){ 
    if let Data: AnyObject! ..... } 

這是代碼。我試圖通過取消請求:

self.connection.cancel() 

但我有一些錯誤:無法assing型「無效」的值類型NSURLConnection的值。

回答

1

sendAsynchronousRequest是一個函數,它不返回任何內容,但您將其分配給self.connection

你並不需要一個NSURLConnection實例發送異步請求 - 這是一類功能,你通過它你NSURLRequest,和一個自定義NSOperationQueuecompletionHandler,可選。

此外,您無法真正取消通過sendSynchronous-sendAsynchronousRequest發出的請求。您需要製作一個NSURLSessionTask,與NSURLSession結合使用。 NSURLSessionTask有一個cancel()方法。