Pregunta

He escrito una aplicación para iOS que llama a múltiples veces para NSURLConnection datos de imágenes descargadas de Internet. A veces, uno NSURLConnection no ha terminado antes de que las otras aperturas. Estoy viendo los datos corruptos JPEG y yo creo que es porque mi delegado didReceiveData es el ahorro de los datos de dos NSUrlConnections separadas y munging las dos corrientes de datos JPEG juntos en una variable de datos, lo que ocasiona la corrupción.

Mi pregunta es: ¿cuál es la mejor manera de evitar esto? No parece ser una manera de hacer que cada instancia NSURLConnection Guardar en una variable de datos separada, o hacer que cada instancia de espera hasta que la instancia anterior se lleva a cabo antes de guardar.

Mi código básicamente sigue el ejemplo de Apple aquí excepto que llamo una función loadData varias veces que crea el NSURLRequest y NSURLConnection. http://developer.apple.com/ biblioteca / mac / # documentación / Cacao / conceptual / URLLoadingSystem / Tareas / UsingNSURLConnection.html

Gracias de antemano por cualquier ayuda.

¿Fue útil?

Solución

Cuando la conexión de su delegado: didReceiveData: método se llama, tendrá la instancia de conexión como primer parámetro. Por lo que tendrá que utilizar para realizar un seguimiento de qué conexión de datos se acaban de recibir.

Ejemplo de Apple mantiene una instancia de NSMutableData. Su código requerirá varios casos, uno para cada conexión activa.

O, por supuesto, usted podría tener un objeto delegado separada (una instancia individual) para cada conexión. Eso puede ser más sencillo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top