Herunterladen großer Dateien mit AFNetworking
Ich versuche, das Herunterladen einer großen Datei zu implementieren und dem Benutzer den aktuellen Fortschritt anzuzeigen, blockiere jedoch Folgendes:
-[AFURLConnectionOperation setDownloadProgressBlock:]
gibt falsch zurückbytesRead
undtotalBytesRead
Werte (sie sind kleiner als sie sein sollten).
Beispiel: Wenn ich eine 90-MB-Datei habe und diese vollständig heruntergeladen wird, wird der letzte Blockaufruf in ausgeführtsetDownloadProgressBlock:
gibt mirtotalBytesRead
Wert über 30MB. Wenn andererseits die Datei 2 MB groß ist, ist der letzte Blockaufruf korrekttotalBytesRead
2 MB Wert.
AFNetworking wird von github auf die neueste Version aktualisiert.
Welche Lösung kann ich verwenden, wenn AFNetworking dies nicht korrekt ausführen kann?
Bearbeiten: Ich habe festgestellt, dass AFNetworking auch dann Erfolgssperren aufruft, wenn die Datei nicht vollständig heruntergeladen wurde (und dies jedes Mal bei relativ großen Dateien der Fall ist):
-[AFHTTPRequestOperation setCompletionBlockWithSuccess:failure:]
Ich habe eine ähnliche Frage gestelltHier über diese Situation, bekam aber keine Antworten.
Ich kann heruntergeladenen Code und echte Dateigrößen einchecken, aberAFNetworking
hat keine API für die Fortsetzung des teilweisen Downloads.