У меня есть сетевая задача, которая содержит обработчик завершения, позволяющий мне определить, если и когда задача успешно завершена;
func performUpload(url: URL, completionHandler: @escaping (_ response: Bool) -> ()) {
photoSave.savePhotoRemote(assetURL: url) { response in
completionHandler(response)
}
}
Я вызываю эту функцию из другого UIView, используя следующее;
UploadHelper.shared.performUpload(url: fileAssetPath) { response in
if response {
// do stuff
}
}
Что я замечаю, так это то, что когда я фиксирую ответ и do stuff , класс, вызвавший эту функцию, никогда не деиницирует. Однако, если я изменю свою функцию на следующую:
UploadHelper.shared.performUpload(url: fileAssetPath) { response in }
и ничего не делать с ответом, класс будет deinit.
Что я делаю не так с моей функцией? Я хотел бы получить ответ соответствующим образом, но не за счет того, что мой класс не был освобожден из памяти.