от
Пожалуйста, см. фрагмент кода ниже (некоторые части не имеет отношения к вопросу опущены) В 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

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

...