от
Пожалуйста, см. фрагмент кода ниже (некоторые части не имеет отношения к вопросу опущены) В WebService1, dataTask является экземпляром переменной/свойства, тогда как в WebService2, dataTask является локальной переменной внутри функции callWebService.
final class WebService1 {
    let urlSession = URLSession(configuration: .default)

    // 1. data task is a private property of PNWebService here

    private var dataTask: URLSessionDataTask?
    func callWebService(completion: () 

Клиентам эти сервисы в обычным способом:

let ws1 = WebService1()
ws1.callWebService() {
    print("1. complete")
}

let ws2 = WebService2()
ws2.callWebService() {
    print("2. complete")
}
Вопрос 1) Кто имеет сильную ссылку на dataTask в WebService2, так что он не будет освобожден до того, как обработчик завершения называется? В2) от клиента точки зрения, что разница во времени выполнения между WebService1

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
...