2017-02-15 70 views
0

我正在嘗試使用Swift下載文件。這是我的代碼下載類:在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() 
    } 
} 

我調用該函數是這樣的:

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

但此錯誤消息彈出:

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

有人能告訴我是什麼做錯了,我該如何解決?謝謝!

+0

不知道答案,但我建議使用Alamofire框架 - 使這樣的任務更容易編碼。 –

回答

0

缺少接收數據的代碼。

使用代理方法URLSession或者使用完成處理程序實現dataTask方法。

另外一個GET請求,你並不需要一個URLRequest - 從來沒有在斯威夫特3反正用NSMutableURLRequest - ,只是通過URL和不使用URL作爲變量名,這是一個結構的斯威夫特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() 
    } 
}