Неоднозначная ссылка на член 'downloadTask (with: завершениемHandler :)' - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь воспроизвести аудио с URL.

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

, но это дает мне ошибку в случае неоднозначной ссылки.

enter image description here

Ответы [ 2 ]

3 голосов
/ 08 июля 2019

Компилятор ожидает собственный URL, не используйте классы NS... в Swift, если есть собственный эквивалент.

И downloadTask - необязательная константа. Нет причин добавлять строку объявления.

И, скорее всего, вы получите еще одну ошибку о , требующей явного 'self.'

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 голос
/ 08 июля 2019

Используйте 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()
}
...