NSMutableURLRequest: l'affichage de grandes quantités de données
-
29-09-2019 - |
Question
Je dois envoyer de grandes quantités de données (fichiers d'image) par POST dans un WebView
, alors j'utilise NSMutableURLRequest
avec setHTTPBody:
.
Problème:. Si la taille des données est supérieure à environ 3 Mo, l'application se met soudain à manger d'énormes quantités de mémoire et devient lent chien avec toute la pagination
Je l'ai essayé de changer ceci:
[request setHTTPBody:[NSData dataWithBytes:post.Get() length:post.Size()]];
.. à ceci:
[request setHTTPBodyStream:[NSInputStream inputStreamWithData:
[NSData dataWithBytes:post.Get() length:post.Size()]]];
.. mais rien ne semble se passer et la demande seulement fois sur. Je reçois aucun des callbacks normaux (comme WebViewProgressEstimateChangedNotification
) et les données ne semble pas obtenir ensemble.
Alors, comment puis-je (a) à l'approche NSData
ne pas être un porc de mémoire ou (b) faire le travail d'approche de flux (en supposant qu'il est une bonne solution)?
La solution
J'ai fini par résoudre en utilisant NSURLConnection
pour faire le télécharger manuellement, puis alimenter le résultat dans le WebView
. En prime, je reçois beaucoup mieux la progression du téléchargement met à jour cette façon.