Avatar ·

¿Siempre es necesario usar [unowned self] en closures en Swift?

¡Hola a todos! Empecé a estudiar Swift y me encontré con el problema de la gestión de memoria en closures. Leí muchos artículos en Stack Overflow, y en todas partes escriben que es necesario usar `[weak self]` o `[unowned self]` para evitar retain cycles. Pero estoy confundido sobre cuándo aplicar `unowned`. Aquí hay un ejemplo: tengo una clase `NetworkManager` que carga datos y llama a un closure después de completar. ```swift class NetworkManager { func fetchData(completion: @escaping (Data?) -> Void) { DispatchQueue.global().async { // simulación de carga sleep(2) let data = Data() completion(data) } } } class ViewController: UIViewController { let networkManager = NetworkManager() func loadData() { networkManager.fetchData { data in // procesamos los datos self.updateUI(with: data) } } func updateUI(with data: Data?) { // actualización de la interfaz