Я пытался использовать фоновую загрузку NSURLSession, но время от времени я получаю крэшNSURLSession: фон авария, потому что делегаты загружать не называется
Sep 25 10:01:48 ipad backboardd[29] <Warning>: MyApp[11829] has active assertions beyond permitted time:
{(
<BKProcessAssertion: 0x166b1770> identifier: com.apple.nsnetworkd.handlesession process: MyApp[11829] permittedBackgroundDuration: 30.000000 reason: backgroundDownload owner pid:8440 preventSuspend preventThrottleDownUI preventIdleSleep preventSuspendOnSleep
)}
отладки коды, я понял, что, когда авария происходит, вызывается метод application: handleEventsForBackgroundURLSession:completionHandler:
, где я воссоздаю сеанс и сохраняю обработчик завершения, как Apple Documentation reccomends, но делегаты конца задачи никогда не вызываются, и ни один из них не является URLSessionDidFinishEventsForBackgroundURLSession:
, что объясняет сбой, поскольку я вызываю обработчик завершения после Я обработал окончание загрузки в делегате NSURLSession.
Может ли кто-нибудь сказать мне, почему делегаты не называются?
Мне очень сложно получить хорошую информацию о том, какие фоновые задачи выполняются. Вы рассматривали журнал консоли устройства для подсказок? Иногда там появятся сообщения об ошибках. –
Да, я получил это сообщение с консоли устройства, отладка xCode предотвращает этот сбой, поэтому единственный способ отладить это - использовать NSLog и консоль устройства – Leonardo