2012-05-09 6 views
0

Im в настоящее время реализует функцию обновления в приложении, которое я создаю. Он использует NSUrlConnection и NSURLConnectionDelegate для загрузки файлов и сохранения их на пользовательском устройстве.Проверка размера файла перед загрузкой нескольких файлов

На данный момент 1 элемент обновления загружает несколько файлов, но я хочу отобразить эту загрузку нескольких файлов, используя 1 UIProgressView. Итак, моя проблема заключается в том, как получить ожидаемую длину содержимого всех файлов, которые я собираюсь загрузить? Я знаю, что могу получить ожидаемую длину объекта объекта NSURLResponse, который передается в метод didReceiveResponse, но это только для загружаемого файла.

Любая помощь очень ценится. Благодарю.

ответ

0

Как насчет того, что на вашем сервере есть какой-то информационный файл, который фактически дает вам общие байты. Сначала вы можете загрузить это, а затем загрузить свои файлы. Затем вы можете вычесть загруженную сумму для каждого файла из общей суммы.

Другим методом было бы сначала соединить все файлы и отменить соединение после получения ответов. Добавьте ожидаемые байты всех файлов, а затем используйте их в качестве основы для отображения общего прогресса при загрузке файлов.

Недостаток # 1: вы должны вручную отслеживать байты.

Недостаток # 2: у вас будет двойное количество запросов, хотя они будут отменены после ответа.

+0

Хорошая идея. Я думаю, что первая идея, вероятно, лучшая, каждое обновление является объектом NSDictionary, поэтому я просто добавлю свойство для размера содержимого. Благодаря! – JDx

+0

Добро пожаловать :) –

0

рамки с открытым исходным кодом Использование ASIhttp широко используется для этой цели, здесь у просто нужно установить progressview delegate..so он будет постоянно обновлять ваш взгляд прогресса

Попробуйте http://allseeing-i.com/ASIHTTPRequest/

Смежные вопросы