Red perdida en deslocking de locking de pantalla

Encontré un problema muy extraño, usando una simple AFNetworking descarga de AFNetworking , incluso probada con una simple operación de NSURLConnection , la connection falla si mantiene su aplicación en ejecución, y bloquea la pantalla y luego la desbloquea. Funciona absolutamente bien en background .

¿Alguno de los que encontraron un problema similar con NSURLConnection quiere compartir alguna solución?

Gracias.

Parece un error de iOS. Extrañamente, pero la acción de la pantalla de locking afecta a NSURLSession alguna manera, por lo que deja de funcionar y devuelve NSURLErrorNetworkConnectionLost . Entonces, en mi aplicación renuncié a la session compartida. Utilizo un nuevo object de session para cada request o (si necesito mantener una session constantemente) lo vuelvo a crear cada vez que se desbloquea la pantalla. Y funciona. Para los usuarios de AFNetworking o cualquier otra biblioteca de NSURLSession que esté trabajando en NSURLSession la situación es más difícil, por supuesto. Deberá corregir el código de la biblioteca, que definitivamente no es algo bueno, pero creo que no hay otra opción

Muy útil Andrey Chernukha , en mi caso, descubrió que no es necesario volver a crear una nueva session cada vez. Terminé usando array para save corriendo NSURLSessionDataTasks y después de que el teléfono se desbloquee reanúcelas.

Pasos:

  1. Creé la matriz NSMutableArray * dataTasksToResume

  2. En – (void) applicationWillResignActive: aplicación (UIApplication *) guardé todas las tareas en dataTasksToResume array

  3. Cancelar todas las NSURLSessionDataTasks en ejecución .
  4. En – (void) applicationDidBecomeActive: la aplicación (UIApplication *) obtiene todas las tareas de la matriz y las reanuda (las vuelve a crear)
  5. ¡Disfrutar!

Espero eso ayude.