отменить NSURLConnection в ios

Я mapView webservice на mapView drag / mapView . Я хочу сохранить задержку в вызовах веб-службы. Поэтому я хочу, чтобы всякий раз, когда пользователь перетаскивал карту несколько раз, все предыдущие вызовы веб-сервисов должны быть отменены, и нужно только запустить вызов последнего веб-сервиса.

Как мне это сделать?

Ниже приведен мой код:

 { .... NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; NSString *postLength = [NSString stringWithFormat:@"%lu",(unsigned long)[data length]]; [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; [request setHTTPBody:data]; [request setHTTPMethod:@"POST"]; NSMutableDictionary __block *dictResponse; [[NSOperationQueue mainQueue] cancelAllOperations]; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { if(connectionError == nil){ dictResponse = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&connectionError]; } 

2 Solutions collect form web for “отменить NSURLConnection в ios”

Вы не можете отменить sendAsynchronousRequest . Если вы использовали запрос NSURLConnection основе NSURLConnection , вы можете отменить его, но (а) это больше кода, чем вы, вероятно, захотите побеспокоить; (b) NSURLConnection устарел, поэтому вы должны быть NSURLSession любом случае; и (c) NSURLSession позволяет отменить задачу, используя ссылку NSURLSessionTask которая возвращается вам:

 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; [request setHTTPBody:data]; [request setHTTPMethod:@"POST"]; NSURLSessionTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { if (error) { NSLog(@"connection error = %@", error); return; } NSError *parseError; NSDictionary *responseObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&parseError]; if (!responseObject) { NSLog(@"parse error = %@", parseError); } dispatch_async(dispatch_get_main_queue(), ^{ // use response here; eg, updating UI or model objects }); }]; [task resume]; 

Если вам нужно отменить этот запрос, просто позвоните [task cancel] . Поэтому сохраните эту NSURLSessionTask в некоторой слабой переменной, если вы хотите ее отслеживать и отменить ее позже.

Не используйте API-интерфейс sendAsynchronousRequest , используйте основной API-интерфейс делегата, чтобы у вас был доступ к экземпляру NSURLConnecyion для cancel вызова.

Кроме того, не отменяйте операции в главной очереди, вы не знаете, что там есть, и подумайте об использовании NSURLSession

  • Можно ли загрузить файл на сервер без преобразования его в NSData?
  • Очистка файлов cookie для WKWebView на iOS 8.4
  • Добавить поля в NSMutableURLRequest
  • Ошибка NSMutableURLRequest и ошибка запроса на поток запроса
  • NSURLSessionDataTask время ожидания последующих запросов не работает
  • NSURLCache - кэширование диска для запроса GET с неработающими параметрами
  • Использование заголовка accept с NSMutableURLRequest в iOS
  • NSURLErrorDomain Code = -1012 Операция не может быть завершена
  • Запрос на веб-сервис через SSL
  • Отправить запрос удаления http
  • NSMutableURLRequest «Задержка с запросом». ,
  • Разница между установкой заголовка NSMutableURLRequest и добавлением одного
  • Interesting Posts

    Кнопка панели ввода ios для модального просмотра

    UISnamator UISnapBehavior возможно с UIScrollview?

    Ошибка преобразования AudioBufferList в CMBlockBufferRef

    Как обнаружить устройство ibeacon без знания UUID в iOS?

    Sprite-Kit colorizeWithColor не смешивает спрайт с правильным цветом

    Градиент, определяемый тригонометрической функцией в основной графике

    Обнаружение состояния блокировки паролей с главного экрана

    Вставка новой ячейки в электронную таблицу google с использованием API GData в iOS

    Ошибка компоновщика при создании проекта Gstreamer iOS Tutorial

    iPhone iOS Amazon Scheme / URI не работает больше amzn: // версия 4.3.1 Deep Linking

    Попросите приложение, подписанное iOS, выполнить неподписанное приложение на поврежденном устройстве

    Как передать быстрый объект javascript (WKWebView / swift)

    Приложение сбой в потоке с именем com.apple.CFURLCACHE_work_queue

    Как проверить значения NSDictionary, nil в iPhone

    Изменение размера шрифта на этикетке только для iPhone 4, возможно ли это?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.