`URLSessionDelegate` 方法未被调用

`URLSessionDelegate` methods are not called

请注意,我已经检查了以前的答案并且我没有在代码中使用回调。在这种情况下,应该调用 delegate 方法

环境iOS14.4.2

URL 有效。文件已下载。只是代表没有被调用。

示例代码如下:

final class Downloader: NSObject, URLSessionDelegate {

    private lazy var urlSession = URLSession(
        configuration: .default,
        delegate: self,
        delegateQueue: .main
    )
    private var downloadTask: URLSessionDownloadTask?

    func beginDownload(url: URL) {
        downloadTask = urlSession.downloadTask(with: url)
        downloadTask!.resume()
    }

    func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) {
        // NEVER CALLED
    }
}

您正在实施的 func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) 方法是 URLSessionDownloadDelegate 的一部分,而不是 URLSessionDelegate,因此您也应该声明符合 URLSessionDownloadDelegate 以便委托呼叫发生。