在iOS中下载文件[重复]
Posted
技术标签:
【中文标题】在iOS中下载文件[重复]【英文标题】:Downloading files in iOS [duplicate] 【发布时间】:2017-02-15 20:36:00 【问题描述】:我正在尝试使用 Swift 下载文件。这是我代码中的下载器类:
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 测试[78708:7989639] [] __nw_connection_get_connected_socket_block_invoke 2 连接没有连接的处理程序 2017-02-16 04:27:37.167092 WiFi 测试[78708:7989639] [] __nw_connection_get_connected_socket_block_invoke 3 连接没有连接的处理程序 2017-02-16 04:27:37.169050 WiFi 测试 [78708:7989627] PAC 流失败 2017-02-16 04:27:37.170688 WiFi 测试[78708:7989639] [] nw_proxy_resolver_create_parsed_array PAC 评估错误:kCFErrorDomainCFNetwork:2
谁能告诉我我做错了什么以及如何解决它?谢谢!
【问题讨论】:
不知道答案,但我建议使用 Alamofire 框架——这样的任务更容易编写代码。 【参考方案1】:接收数据的代码丢失。
要么使用URLSession
的委托方法,要么使用完成处理程序实现dataTask
方法。
对于 GET 请求,您不需要 URLRequest
– 无论如何都不要在 Swift 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()
【讨论】:
以上是关于在iOS中下载文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章