Sobes.tech
Junior — Middle

Pode explicar o conceito de referências fracas na programação?

sobes.tech IA

Resposta da IA

Referências fracas (weak references) são referências a objetos que não impedem o coletor de lixo de remover esses objetos da memória. Ao contrário das referências fortes, as referências fracas ajudam a evitar fugas de memória quando o objeto já não é necessário, mas ainda há referências a ele.

Por exemplo, no iOS (Swift ou Objective-C), referências fracas são frequentemente usadas para evitar ciclos de retenção (retain cycles) entre objetos, especialmente em closures ou delegados:

class ViewController: UIViewController {
    var closure: (() -> Void)?

    func setup() {
        closure = { [weak self] in
            self?.doSomething()
        }
    }

    func doSomething() {
        print("Ação realizada")
    }
}

Aqui, [weak self] garante que o closure não irá reter self fortemente, permitindo que o controlador seja liberado da memória quando não for mais necessário.

Dessa forma, referências fracas ajudam a gerenciar o ciclo de vida dos objetos e evitam problemas de memória.