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)?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top