2017-05-19 67 views
3

我使用這段代碼將MP3文件下載到的文件目錄:Alamofire:下載到文件高速緩存的大型文件的文件夾

let destination = DownloadRequest.suggestedDownloadDestination(for: .documentDirectory) 
Alamofire.download(theUrl!, to:destination).response { response in 
    // stuff 
}.downloadProgress { progress in 
    // Stuff 
} 

文件下載罰款,但如果我關閉應用程序並重新啓動,下載從0重新開始。我想要的是文件被立即緩存和提取。 我對Alamofire的理解是,該文件被下載到一個臨時文件夾,然後移動到Documents文件夾,這是什麼導致緩存不發生?

非常感謝

回答

7

請檢查以下引用依次是:
1. https://github.com/Alamofire/Alamofire/issues/1104
2. https://github.com/Alamofire/Alamofire#resuming-a-download
3. https://stackoverflow.com/a/39347461/3549695

總結:
您需要使用的要求。 cancel()API在應用程序退出前生成resumeData。
然後,在應用程序重新啓動時,使用resumeData恢復API來恢復請求。
不能保證它始終有效。如果失敗,它仍然會從0開始重新啓動。

上面參考文獻(2)中提到了iOS 10的一個問題,它阻止了它的正常工作。 但StackOverflow上的更新(參考文獻3)有一個報告,它已在iOS 10.2中修復了