Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift URLSessionDownloadDelegate方法didWriteData在应用程序处于后台后未调用_Swift_Background_Nsurlsession - Fatal编程技术网

Swift URLSessionDownloadDelegate方法didWriteData在应用程序处于后台后未调用

Swift URLSessionDownloadDelegate方法didWriteData在应用程序处于后台后未调用,swift,background,nsurlsession,Swift,Background,Nsurlsession,在我的应用程序中,我想下载大文件。因此,我希望向用户显示下载进度。为此,我实现了URLSessionDownloadDelegate 在应用程序进入后台之前,这一切都非常有效。当用户重新打开应用程序时,不会调用didWriteData。但是,didfishdownloadingto仍被调用。因此,委托本身没有问题 其他一些开发人员在中报告了类似的问题 然而,到目前为止,似乎没有解决这个问题的办法或变通办法。这里有人找到解决办法了吗? 如果没有,我可以用什么来代替SessionDownloadTa

在我的应用程序中,我想下载大文件。因此,我希望向用户显示下载进度。为此,我实现了
URLSessionDownloadDelegate

在应用程序进入后台之前,这一切都非常有效。当用户重新打开应用程序时,不会调用didWriteData。但是,
didfishdownloadingto
仍被调用。因此,委托本身没有问题

其他一些开发人员在中报告了类似的问题

然而,到目前为止,似乎没有解决这个问题的办法或变通办法。这里有人找到解决办法了吗?
如果没有,我可以用什么来代替
SessionDownloadTask

这似乎是iOS12中的一个bug。作为一种解决方法,一旦应用程序再次激活,我将恢复所有下载任务。像这样:

private(set) var session: URLSession?

func applicationDidBecomeActive(_ application: UIApplication) {
    session?.getAllTasks(completionHandler: { tasks in
        for task in tasks {
            task.resume()
        }
    })
}

在bugreport.apple.com上提交一个bug。我相信这是最近一些主要iOS版本中的一个已知问题。