对成员'downloadTask(with:completionHandler :)的含糊不清的引用

时间:2019-07-08 09:46:25

标签: ios swift nsurlsessiondownloadtask

我正在尝试播放URL中的音频。

var downloadTask:URLSessionDownloadTask!
downloadTask = URLSession.shared.downloadTask(with: url, completionHandler: { (url, response, error) in
    playAudio(url: url)
})
downloadTask.resume()

但这给我错误的pf含糊不清的引用。

enter image description here

2 个答案:

答案 0 :(得分:3)

编译器期望使用本机URL,如果有本机等效项,则无论如何不要在Swift中使用NS...类。

downloadTask是一个非可选常数。没有理由添加声明行。

很可能您会遇到另一个有关需要显式“自我”的错误。

func downloadTaskFromURL(url: URL) {
    let downloadTask = URLSession.shared.downloadTask(with: url, completionHandler: { (url, response, error) in
        self.playAudio(url: url)
    })
    downloadTask.resume()
}

旁注:根据命名准则,该方法应命名为func downloadTask(from url: URL)

答案 1 :(得分:1)

使用URL代替NSURL

func downloadFile(from url: URL) {
    var downloadTask: URLSessionDownloadTask
    downloadTask = URLSession.shared.downloadTask(with: url, completionHandler: { (url, reponse, error) in
        // play audio
    })
    downloadTask.resume()
}