2

Я создал приложение, более года назад, которое обеспечивает обмен фотографиями и обмен видео для своих пользователей. Он работал без проблем до тех пор, пока пару недель назад я не представил новую функцию: возможность маркировки видео, которое будет загружаться только тогда, когда доступен WiFi: видео установлено, чтобы использовать NSURLSession с NSURLSessionConfiguration, где allowCellular установлен на NO ,Ошибка NSURLSession при загрузке по WiFi: NSURLErrorDomain Code = -999

Большую часть времени она отлично работает:

  • я поставил видео, чтобы быть на долю WiFi, пока я подключен через 3G/4G
  • После того, как подключиться к сети Wi-Fi видео загружается без проблем

Однако некоторые пользователи не загружают свои видеоролики после подключения к WiFi. Я получил некоторые журналы из них, и я вижу ошибку всякий раз, когда они подключены к Wi-Fi, по какой-то причине NSURLSession делает делегат вызов:

- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error 

со следующей ошибкой:

Error: Error Domain=NSURLErrorDomain Code=-999 "(null)" UserInfo={NSErrorFailingURLStringKey=https://my-videos-bucket.s3.amazonaws.com/4074196678138134606/F17F7308-2810-4325-A5AF-BB8FFC093AC6.mov, NSURLErrorBackgroundTaskCancelledReasonKey=0, NSErrorFailingURLKey=https://my-videos-bucket.s3.amazonaws.com/4074196678138134606/F17F7308-2810-4325-A5AF-BB8FFC093AC6.mov} 

Любые идеи? Может быть, проблема с сервером? Странно то, что я не могу воспроизвести его и не понять причину сбоя.

Заранее благодарен!

Ze

+0

Кажется, задача отменена другой задачей. -999 для NSURLErrorCancelled. –

+0

Возьмите свой iPhone в Starbucks и посмотрите, сможете ли вы воспроизвести проблему. Пользователи могут работать в скрытой сети. – gnasher729

ответ

0

А999 ошибка обычно возникает, когда ваше приложение отменяет запрос-либо явно отменить саму задачу или недействительности (или, возможно, высвобождая) сессию, которая содержит его.

Однако в случае загрузки фонограмм структура предоставляет немного больше информации. Вы заметите, что ключ словаря NSURLErrorBackgroundTaskCancelledReasonKey) имеет значение 0. Если вы посмотрите, что в документации, вы увидите, что это соответствует NSURLErrorCancelledReasonUserForceQuitApplication.

Другими словами, запрос был отменен, потому что пользователь явно дважды нажал кнопку «домой» и развернул вверх, чтобы прервать ваше приложение. В результате загрузка фонограммы была автоматически отменена.

См. NSURLSession Class Reference для получения дополнительной информации.

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