Pregunta

Es necesario enviar grandes cantidades de datos (archivos de imágenes) por correo, en un WebView, así que estoy usando NSMutableURLRequest con setHTTPBody:.

Problema:. Si el tamaño de los datos es más de alrededor de 3 MB, la aplicación se inicia repentinamente comer enormes cantidades de memoria y se pone lenta perro con toda la paginación

He intentado cambiar esto:

[request setHTTPBody:[NSData dataWithBytes:post.Get() length:post.Size()]];

.. a esto:

[request setHTTPBodyStream:[NSInputStream inputStreamWithData:
    [NSData dataWithBytes:post.Get() length:post.Size()]]];

.. pero luego parece que nada sucede y la solicitud sólo el tiempo de espera. Consigo ninguna de las devoluciones de llamada normal (como WebViewProgressEstimateChangedNotification) y no parece que los datos para obtener conjunto.

Así que, ¿cómo lo (a) hacer que el enfoque NSData no ser un cerdo de la memoria o (b) hacer que el enfoque de flujo (asumiendo que es una buena solución)?

¿Fue útil?

Solución

Terminé resolver mediante el uso de NSURLConnection hacer la carga manualmente, y luego alimentar el resultado en el WebView. Como beneficio adicional, me sale mucho mejor progreso de carga actualiza esta manera.

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