NSMutableURLRequest: размещение больших объемов данных - PullRequest
2 голосов
/ 24 июня 2010

Мне нужно отправить большие объемы данных (файлы изображений) с помощью POST в WebView, поэтому я использую NSMutableURLRequest с setHTTPBody:.

Проблема: если размер данных большечем около 3 МБ, приложение внезапно начинает поглощать огромные объемы памяти и замедляет работу со всеми страницами.

Я пытался изменить это:

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

.. на это:

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

.. но тогда, кажется, ничего не происходит, и запрос просто истекает.Я не получаю ни одного нормального обратного вызова (например, WebViewProgressEstimateChangedNotification), и данные, похоже, не устанавливаются.

Итак, как мне (а) сделать так, чтобы подход NSData не был захватом памяти или(б) заставить потоковый подход работать (при условии, что это хороший обходной путь)?

1 Ответ

0 голосов
/ 26 июня 2010

Я решил решить эту проблему с помощью NSURLConnection, чтобы выполнить загрузку вручную, а затем передать результат в WebView.В качестве бонуса я получаю гораздо больше улучшений при загрузке обновлений таким образом.

...