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() 

, но у меня есть некоторые ошибки: Не могу Ассинг значения типа «ничтожной» к значению типа NSURLConnection.

ответ

1

sendAsynchronousRequest - это функция, которая ничего не возвращает, и все же вы назначаете ее self.connection.

Вам не нужен NSURLConnection экземпляра для передачи асинхронного запроса - это функция класса, вы передаете ему ваши NSURLRequest и пользовательские NSOperationQueue или ее completionHandler, необязательно.

Кроме того, вы действительно не можете отменить запрос, сделанный через sendSynchronous- или sendAsynchronousRequest. Вам необходимо будет сделать NSURLSessionTask, который будет использоваться в сочетании с NSURLSession. NSURLSessionTask s имеют метод cancel().

Смежные вопросы