Вопрос

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

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top