Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
6
Обнаружение и устранение утечек памяти в асинхронных Swift‑операциях
Компании, где спрашивали:
SmartWay
Условие задачи
Задача состоит в том, чтобы проанализировать приведённый асинхронный Swift‑код, выявить места, где возможны утечки памяти, и внести исправления, обеспечив корректное освобождение ресурсов.
class DataProcessor {
func process(data: String, completion: @escaping (String) -> Void) {
DispatchQueue.global().async {
let result = data.uppercased()
DispatchQueue.main.async {
completion(result)
}
}
}
}
var handler: DataProcessor? = DataProcessor()
handler?.process(data: "hello") { result in
print(result)
handler = nil // освобождаем объект после использования
}
В данном примере необходимо обратить внимание на захват self (или переменной‑обработчика) внутри замыкания и гарантировать, что после выполнения операции объект будет корректно деинициализирован, чтобы не оставлять висящих ссылок в памяти.