0
私の目標は、URLの配列(たとえば25個のURL)を文字列としてダウンロードし、URLのダウンロードがすべて完了したときに報告します。現時点でURLの配列を文字列として非同期にダウンロードする方法
の下に構成されているように、私は、1つのWebページから、正常にダウンロードすることができる午前:
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "https://www.apple.com")
self.downloadWebpage(url: url!)
}
func getDataFromUrl(url: URL, completion: @escaping (_ data: Data?, _ response: URLResponse?, _ error: Error?) -> Void) {
URLSession.shared.dataTask(with: url) { (data, response, error) in
completion(data, response, error)
if error != nil {
print (error.debugDescription)
}
}.resume()
}
func downloadWebpage(url: URL) {
getDataFromUrl(url: url) { (data, response, error) in
guard let data = data, error == nil else { return }
print(response?.suggestedFilename ?? url.lastPathComponent)
print("Download Finished")
print (data)
DispatchQueue.main.async() {() -> Void in
if let returnData = String(data: data, encoding: .utf8) {
print (returnData)
}
}
}
}
私は簡単に、アレイ内の私のURLをパッケージ化する可能性が実現しますが、私の難しさがにプロセスを得ることについてです配列のURLのすべてがダウンロードされた(またはエラーが発生した)と報告します。いかなる援助も感謝します。