私は誰のために元の質問がobj-Cであるが、これはGoogle検索で起動し、して実現他にそれにつまずきとし、@Louフランコの答えのスウィフトのバージョンを必要とする、ここにある:ここでのノートの
let configuration = URLSessionConfiguration.default
let manager = AFURLSessionManager(sessionConfiguration: configuration)
let url = URL(string: "http://example.com/download.zip")! // TODO: Don't just force unwrap, handle nil case
let request = URLRequest(url: url)
let downloadTask = manager.downloadTask(
with: request,
progress: { (progress: Progress) in
print("Downloading... progress: \(String(describing: progress))")
},
destination: { (targetPath: URL, response: URLResponse) -> URL in
// TODO: Don't just force try, add a `catch` block
let documentsDirectoryURL = try! FileManager.default.url(for: .documentDirectory,
in: .userDomainMask,
appropriateFor: nil,
create: false)
return documentsDirectoryURL.appendingPathComponent(response.suggestedFilename!) // TODO: Don't just force unwrap, handle nil case
},
completionHandler: { (response: URLResponse, filePath: URL?, error: Error?) in
print("File downloaded to \(String(describing: filePath))")
}
)
downloadTask.resume()
カップル:
- これは私も(ちょうど
print
文)progress
閉鎖を追加スウィフト3 /スウィフト4
- です。もちろん元の例のように
nil
を渡すことはまったく問題ありません。
- 3つの場所(
TODO:
とマークされています)がエラー処理なしで失敗する可能性があります。明らかにクラッシュするのではなく、これらのエラーを処理する必要があります。
ありがとうございました。それは完全に動作します –
多くの人に感謝、素早く素早く働く - 4 –