मुझे पता मूल प्रश्न Obj सी में है, लेकिन यह किसी के लिए भी तो एक गूगल खोज में आता है, बाकी इस पर ठोकर और और @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()
यहाँ नोटों की युगल:
012,
- यह स्विफ्ट 3/स्विफ्ट 4
- है मैं भी (सिर्फ एक
print
बयान) एक progress
बंद गयी। लेकिन निश्चित रूप से मूल उदाहरण के रूप में nil
पास करना बिल्कुल ठीक है।
- तीन स्थान हैं (
TODO:
के साथ चिह्नित) कोई त्रुटि नहीं है जहां चीजें असफल हो सकती हैं। जाहिर है कि आपको केवल दुर्घटनाग्रस्त होने की बजाय इन त्रुटियों को संभालना चाहिए।
स्रोत
2017-08-15 09:24:39
धन्यवाद। यह पूरी तरह से काम करता है –
बहुत बहुत धन्यवाद, स्विफ्ट के साथ ठीक काम करता है - 4 भी –