NSMutableURLRequest: pubblicazione di grandi quantità di dati
-
29-09-2019 - |
Domanda
Ho bisogno di inviare grandi quantità di dati (file immagine) per posta in un WebView
, quindi sto usando NSMutableURLRequest
con setHTTPBody:
.
. Problema: se la dimensione dei dati è più di circa 3 MB, l'applicazione inizia improvvisamente a mangiare enormi quantità di memoria e ottiene il cane lento con tutta la paginazione
Ho provato a cambiare questo:
[request setHTTPBody:[NSData dataWithBytes:post.Get() length:post.Size()]];
.. a questo:
[request setHTTPBodyStream:[NSInputStream inputStreamWithData:
[NSData dataWithBytes:post.Get() length:post.Size()]]];
.. ma poi nulla sembra accadere e la richiesta solo timeout. Ottengo nessuno dei callback normali (come WebViewProgressEstimateChangedNotification
) ei dati non sembra per ottenere insieme.
Quindi, come faccio a (a) rendere l'approccio NSData
non essere un ingordo di memoria o (b) far funzionare il metodo flusso (ammesso che sia una buona soluzione)?
Soluzione
Ho finito per risolverlo utilizzando NSURLConnection
di fare l'upload manualmente, e poi alimentando il risultato nel WebView
. Come bonus, ho molto meglio avanzamento del caricamento aggiorna in questo modo.