2017-02-15 7 views
0

Ich versuche, eine Datei mit Swift herunterladen. Dies ist der Download-Klasse in meinem Code:Herunterladen von Dateien in iOS

class Downloader { 
    class func load(URL: URL) { 
    let sessionConfig = URLSessionConfiguration.default 
    let session = URLSession(configuration: sessionConfig, delegate: nil, delegateQueue: nil) 
    let request = NSMutableURLRequest(url: URL) 
    request.httpMethod = "GET" 
    let task = session.dataTask(with: URL) 
    task.resume() 
    } 
} 

ich die Funktion wie folgt aufrufen:

if let URL = URL(string: "https://web4host.net/5MB.zip") { 
     Downloader.load(URL: URL) 
} 

aber diese Fehlermeldung erscheint:

2017-02-16 04:27:37.154780 WiFi Testing[78708:7989639] [] __nw_connection_get_connected_socket_block_invoke 2 Connection has no connected handler 2017-02-16 04:27:37.167092 WiFi Testing[78708:7989639] [] __nw_connection_get_connected_socket_block_invoke 3 Connection has no connected handler 2017-02-16 04:27:37.169050 WiFi Testing[78708:7989627] PAC stream failed with 2017-02-16 04:27:37.170688 WiFi Testing[78708:7989639] [] nw_proxy_resolver_create_parsed_array PAC evaluation error: kCFErrorDomainCFNetwork: 2

Könnte mir jemand sagen, was ich mache ich falsch und wie könnte ich es beheben? Vielen Dank!

+0

Ich kenne die Antwort nicht, aber ich würde vorschlagen, das Alamofire-Framework zu verwenden - macht es einfacher, solche Aufgaben zu programmieren. –

Antwort

0

Der Code zum Empfangen der Daten fehlt. Verwenden Sie die Delegate-Methoden URLSession, oder implementieren Sie die dataTask-Methode mit dem Beendigungshandler.

Weitere für eine GET-Anfrage Sie kein URLRequest brauchen - nie NSMutableURLRequest in Swift 3 sowieso verwenden -, einfach die URL übergeben und nicht URL als Variablennamen verwenden, es ist eine Struktur in Swift 3

class Downloader { 
    class func load(url: URL) { // better func load(from url: URL) 
     let sessionConfig = URLSessionConfiguration.default 
     let session = URLSession(configuration: sessionConfig, delegate: nil, delegateQueue: nil) 
     let task = session.dataTask(with: url) { (data, response, error) in 
      // handle the error 
      // process the data 
     } 
     task.resume() 
    } 
}