Pobieranie dużych plików za pomocą AFNetworking
Próbuję zaimplementować pobieranie dużego pliku i pokazać użytkownikowi bieżący postęp, ale zablokować:
-[AFURLConnectionOperation setDownloadProgressBlock:]
zwraca niepoprawnebytesRead
itotalBytesRead
wartości (są mniejsze niż powinny).
Na przykład: jeśli mam plik o rozmiarze 90 MB, a po całkowitym pobraniu, najnowsze wywołanie bloku wsetDownloadProgressBlock:
daje mitotalBytesRead
wartość około 30 MB. Z drugiej strony, jeśli plik ma wielkość 2 MB, ostatnie wywołanie bloku daje poprawnetotalBytesRead
2 MB wartości.
AFNetworking jest aktualizowany do najnowszej wersji z github.
Jeśli AFNetworking nie może zrobić tego poprawnie, jakiego rozwiązania mogę użyć?
Edytować: Ustaliłem, że nawet jeśli plik nie zostanie pobrany w całości (a dzieje się to za każdym razem przy stosunkowo dużym pliku), AFNetworking wywołuje blok powodzenia w:
-[AFHTTPRequestOperation setCompletionBlockWithSuccess:failure:]
Zadałem podobne pytanietutaj o tej sytuacji, ale nie otrzymałem żadnych odpowiedzi.
Mogę sprawdzić pobrany kod i rzeczywiste rozmiary plików, aleAFNetworking
nie ma API do kontynuowania częściowego pobierania.