iPhone — ASIHTTP и отображение прогресса при длительных загрузках

#iphone #download

#iPhone #Скачать

Вопрос:

Я планирую использовать ASIHTTP для обработки некоторых длительных загрузок / установок файлов, и я хотел бы предоставить пользователю список выполняемых загрузок, который также позволил бы мне отобразить прерванную загрузку, чтобы пользователь мог повторно инициировать запрос…

Итак, мой план состоит в том, чтобы инициировать запросы из AppDelegate, но если пользователь переходит к просмотру элементов загрузки, мне нужно затем создать просмотр хода выполнения для каждой текущей загрузки и каким-то образом подключить к ним ASIHTTP-соединение. Могу ли я создать представления о ходе выполнения сразу после выполнения запроса на загрузку и сохранить их в массиве в делегате приложения, чтобы DownloadItemsViewController мог затем использовать эти представления о ходе выполнения при создании ячеек для tableview? Есть ли способ лучше? У меня такое чувство, что я неправильно подхожу к этому.

Как бы вы отслеживали загрузки в AppDelegate? Что, если пользователь закроет приложение?

Ответ №1:

Нет особого смысла иметь UIProgressView (я предполагаю, что это то, что вы подразумеваете под «просмотром хода выполнения») экземпляры, если вы не показываете их пользователю.

Вам лучше отслеживать прогресс для каждого запроса (с помощью request:didReceiveBytes: метода делегирования прогресса) в каком-либо виде загрузки -> отображение прогресса. Например, вы могли бы сохранить NSDictionary экземпляр с экземплярами загрузки NSURL в качестве ключей и NSNumber экземплярами, представляющими их прогресс в виде доли в диапазоне [0.0, 1.0].

Затем, когда вы захотите предупредить пользователя о ходе их загрузки, вы можете создавать UIProgressView объекты и заполнять их значениями, сохраненными в вашем NSDictionary отображении.

Комментарии:

1. Спасибо, я знал, что веду себя глупо. Я храню массив словарей в AppDelegate, а представление хода загрузки является делегатом, который получает обновление диапазона [0.0, 1.0] о ходе загрузки каждого элемента.