NSMutableURLRequest: la publicación de grandes cantidades de datos
-
29-09-2019 - |
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)?
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.