Нет необходимости хранить ссылку на экземпляр URLSessionDataTask
, если вы просто хотите выполнить задачу с данными один раз. Вы можете просто сделать defaultSession.dataTask(with: searchUrl, completionHandler: completion).resume()
Однако сохранение ссылки на экземпляр URLSessionDataTask
может быть полезно в случае, если вы хотите приостановить или отменить его до того, как он завершит выполнение.
В вашем методе callService
также есть опечатка. Входной параметр withUrl
нигде не используется, но есть ссылка на searchUrl
, который не является входным параметром, поэтому я предполагаю, что вы хотели вызвать входной параметр URL
searchUrl
.
func callService(with searchUrl: URL, completion: @escaping (Data?, URLResponse?, Error?) -> Void) {
defaultSession.dataTask(with: searchUrl, completionHandler: completion).resume()
}