NSMutableURLRequest: публикация больших объемов данных

Мне нужно отправить большие объемы данных (файлы изображений) с помощью 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 не поглощал память, или (б) заставить работать потоковый подход (при условии, что это хороший обходной путь)?


person Uncommon    schedule 24.06.2010    source источник


Ответы (1)


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

person Uncommon    schedule 25.06.2010