¿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
No answers yet.
Inicia sesión para dejar una respuesta