iOS NSURLSessionDelegate [URLSession: task: didCompleteWithError:] возвращает ошибку, если приложение приостановлено

Я пишу приложение, которое требует фоновой загрузки. Я настроил свой NSURLSession так, чтобы он находился в фоновой конфигурации сеанса.

Все работает, когда приложение находится на переднем плане или даже в фоновом режиме (кнопка «Домой»), но как только я нажимаю кнопку питания, телефон переходит в спящий режим. Звонок NSURLSession delegate:

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

возвращается с ошибкой Domain=NSPOSIXErrorDomain Code=1 "The operation couldn’t be completed. Operation not permitted", и моя загрузка не удалась.


person maxf    schedule 05.12.2013    source источник
comment
Это больше похоже на утверждение, чем на вопрос. Я считаю, что то, что вы описываете, является ожидаемым поведением. Не совсем тот же вариант использования, но этот вопрос может представлять интерес: stackoverflow.com/questions/20159471/   -  person gavdotnet    schedule 31.12.2013
comment
Спасибо за комментарий. Я подвергал сомнению это поведение, потому что мне кажется странным, что фоновые загрузки больше не работают, когда телефон не используется активно (что мне кажется идеальным временем для фактического выполнения фоновых задач). Я нашел в другом потоке stackoverflow ( stackoverflow.com/questions/19184490/ ), что такое поведение действительно наблюдается и у других, но это не помогает мне. Я предполагаю, что мой подразумеваемый вопрос заключается в том, как можно обойти эту проблему?   -  person maxf    schedule 03.01.2014
comment
Когда я нажимаю кнопку питания на своем устройстве (iPad 4-го поколения), моя загрузка продолжается, но в фоновом режиме. То же самое происходит со мной на симуляторе. Может ли ваш Wi-Fi отключаться при переходе в спящий режим? В любом случае вам нужно обработать сбои Wi-Fi, сохранив данные возобновления и перезапустив, когда сеть снова будет доступна.   -  person gavdotnet    schedule 03.01.2014


Ответы (1)


Вы забыли права на загрузку bg (см. цель -> возможности)

person Olof_t    schedule 26.06.2018