Загрузка данных в фоновом сеансе URL-адреса в watchOS 7

Я пытаюсь следить за сеансом WWDC20. Обновляйте свои сложности, WWDC20-10049. Пытаясь следовать коду, я застрял в функции расписания:

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 исходит в этом сеансе.

Я проверил этот ответ, как а также этот обзор сеанса, но я этого не понял.

Спасибо.