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()方法。