Avatar ·

É sempre necessário usar [unowned self] em closures no Swift?

Olá a todos! Comecei a estudar Swift e me deparei com o problema de gerenciamento de memória em closures. Li muitos artigos no Stack Overflow, e em todos eles dizem que é preciso usar `[weak self]` ou `[unowned self]` para evitar retain cycles. Mas estou confuso sobre quando exatamente usar `unowned`. Aqui está um exemplo: tenho uma classe `NetworkManager` que carrega dados e chama uma closure após a conclusão. ```swift class NetworkManager { func fetchData(completion: @escaping (Data?) -> Void) { DispatchQueue.global().async { // simulação de carregamento sleep(2) let data = Data() completion(data) } } } class ViewController: UIViewController { let networkManager = NetworkManager() func loadData() { networkManager.fetchData { data in // processamos os dados self.updateUI(with: data) } } func updateUI(with data: Data?) { // atualização da interface