Я пишу менеджер загрузок в Objective-C, и он работает с функциональностью резюме. Я записываю данные на диск по мере их получения, поэтому, если загрузка по какой-либо причине прерывается, она должна начинаться с того места, где она остановилась. Apple говорит, что вам следует ожидать одно или несколько - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
событий. В этом случае они говорят, что вы должны сбросить все данные, которые вы ранее получили, потому что ваша загрузка перенаправлена, а байты, которые вы уже получили, недействительны, поэтому я удаляю существующий файл и воссоздаю с 0 байтами. Но если я получаю это событие несколько раз, мне придется удалить данные, которые я получил ранее, в виде частичной загрузки, что противоречит цели возобновления работы. Есть ли решение для этого?
Решение, которое я нашел, состоит в следующем: сбрасывать данные только по - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
событиям, которые я получаю после первого. Это исправит большинство случаев (я бы подумал). Это логично звучит? Есть ли лучшая альтернатива? Насколько вероятна загрузка файла для запуска нескольких - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
событий?