Estoy usando una instancia de NSURLConnection en el iPhone para solicitar datos de un servidor, administrado por un delegado como de costumbre. Las solicitudes son bastante frecuentes (tal vez una vez cada 2 minutos, por ejemplo) y tienen una URL común y fija. En lugar de ver la buena instancia de NSURLConnection ser liberado después de cada descarga y luego uno nuevo que se está creando:Reutilizando una instancia de NSURLConnection
¿Hay alguna pena en la retención de la primera conexión y volver a utilizarlo? (Espero que sí, una buena autenticación debería valer miles.)
Si es así, ¿cómo lo vuelvo a utilizar? El método destacado en los documentos es
-start
, pero parece que bloquea la aplicación cuando se invoca en una instancia ya utilizada (y no nula) de NSURLConnection. [Los documentos de hacer decir-start
"hace que el receptor para iniciar la carga de datos, si no lo ha hecho"]
En caso de que sea de ayuda con respecto a las preguntas anteriores, estoy (estaba!) Propone lo siguiente:
if (connection_ == nil)
{
connection_ = [NSURLConnection connectionWithRequest:request
delegate:self];
}
else
{
[connection_ start];
}
Pregunta interesante ... :) – Jasarien
Este es un pequeño duplicado, ver http://stackoverflow.com/questions/886810/nsurlconnection-is-run- many-times. Sin embargo, todavía no hay una buena respuesta. Parece que necesitas inventar tu propia clase para esta tarea. – SK9
Parece que una de las respuestas a esa pregunta es sugerir una transmisión HTTP en lugar de una conexión de uso único. Mantener una secuencia abierta y usarla solo cada 2 minutos no sería una gran idea. Realmente no veo un problema para liberar y volver a crear el objeto de conexión. ¿No es esto una preoptimización? – Jasarien