É 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
No answers yet.
Faça login para deixar uma resposta