【发布时间】:2018-05-14 16:47:33
【问题描述】:
我将项目转换为 Swift 4.1 并在尝试重新制作时出错
private func download(downloadable: Downloadable, destination: Request.DownloadFileDestination) -> Request {
var downloadTask: URLSessionDownloadTask!
switch downloadable {
case .Request(let request):
dispatch_sync(queue) {
downloadTask = self.session.downloadTaskWithRequest(request)
}
case .ResumeData(let resumeData):
dispatch_sync(queue) {
downloadTask = self.session.downloadTaskWithResumeData(resumeData)
}
}
let request = Request(session: session, task: downloadTask)
if let downloadDelegate = request.delegate as? Request.DownloadTaskDelegate {
downloadDelegate.downloadTaskDidFinishDownloadingToURL = { session, downloadTask, URL in
return destination(URL, downloadTask.response as! NSHTTPURLResponse)
}
}
delegate[request.delegate.task] = request.delegate
if startRequestsImmediately {
request.resume()
}
return request
}
和
public func download(
method: Method,
_ URLString: URLStringConvertible,
parameters: [String: AnyObject]? = nil,
encoding: ParameterEncoding = .URL,
headers: [String: String]? = nil,
destination: Request.DownloadFileDestination)
-> Request
{
let mutableURLRequest = URLRequest(method: method, URLString, headers: headers)
let encodedURLRequest = encoding.encode(URLRequest: mutableURLRequest, parameters: parameters).0
return download(encodedURLRequest, destination: destination)
}
当我打电话时
错误:
参数标签 '(_:, destination:)' 不匹配任何可用的重载
【问题讨论】:
-
你的意思是调用函数
download1而不是download? -
错误很明显。您的
download函数的参数与您尝试传入的参数不同。也许您打算调用download1? -
是的,我解决了问题
标签: swift