如何解决在watchOS 7中在后台URLSession中下载数据
我正在尝试遵循WWDC20-10049的WWDC20会话“保持最新的并发症”。在尝试遵循代码时,我被卡在了schedule函数上:
func schedule(_ first: Bool) {
if backgroundTask == nil { //Issue is here
if let url = self.currentWeatherURLForLocation(delegate.currentLocationCoordinate)
{
let bgTask = backgroundURLSession.downloadTask(with: url)
bgTask.earliestBeginDate = Date().addingTimeInterval(first ? 60 : 15*60)
bgTask.countOfBytesClientExpectsToSend = 200
bgTask.countOfBytesClientExpectsToReceive = 1024
bgTask.resume()
backgroundTask = bgTask //Issue is here
}
}
}
}
由于会话仅提供摘要,因此我遇到的问题是定义var backgroundTask的地方。该函数在数据模型中声明,在这种情况下为WeatherDataProvider
。显然,它是backgroundURLSession.downloadTask
,但未标识为self
,因此它应该位于函数的本地,但未在代码段中显示。我希望它要么作为参数发送给函数,要么在数据模型本身中声明。如果在这里声明,则根据对话,它如何声明为,因为该片段正在签入以查看队列中是否有后台请求,所以它可以访问先前的后台请求,因此该函数不会调度另一个请求。我搜索了最近几天,但找不到任何可实现此目的的内容,我可以用来了解本次会议中来自Apple的位置。
我已经检查了本次answer和本次会议overview,但我还没有弄清楚。
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。