NSURLSessionResponseCancel выдает ошибку?

Я использовал NSURLConnectionобъект и вызвал его метод cancel иногда.

Теперь я должен заменить NSURLConnection -> NSURLSession, NSURLSession работает с задачами, которые имеют cancel метод тоже.

Проблема в -[NSURLConnection cancel] просто прекратить обработку запросов, но если я использую -[NSURLSessionTask cancel] выдает "ошибку отмены". Так как правильно отличить, если cancel вызывается вручную или если произошла настоящая ошибка?

2 ответа

Сравните код ошибки с NSURLErrorCancelled. Этот код ошибки генерируется только тогда, когда ваш код отменяет запрос.

Я нашел 3 решения:

  • задача подкласса / класс сеанса

  • создать собственное свойство с помощью метода swizzling в классе задачи / сессии

  • самый простой, но не очень красивый способ - задача имеет свойство строки taskDescription и документация говорит, что разработчики могут использовать его по своему усмотрению.

Другие вопросы по тегам