2017-02-15 2 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 - никогда не использовать NSMutableURLRequest в Swift 3 в любом случае - просто передать URL и не использовать URL в качестве имени переменной, это структура в 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() 
    } 
} 
Смежные вопросы