Junior — Middle
Quando é apropriado usar uma referência fraca com 'weak let'?
sobes.tech IA
Resposta da IA
A referência fraca com weak let em Swift é usada para evitar ciclos de referências fortes ( ciclos de retenção), especialmente em closures e delegados. É adequada quando o objeto ao qual se faz referência pode ser desreferenciado, e você não quer mantê-lo na memória.
Por exemplo, numa closure que captura self, para evitar fugas de memória, faz-se uma referência fraca:
class ViewController {
var closure: (() -> Void)?
func setup() {
closure = { [weak self] in
guard let self = self else { return }
self.doSomething()
}
}
func doSomething() {
print("Ação")
}
}
Aqui, weak impede de reter self na closure, permitindo que o ViewController seja libertado da memória quando já não for necessário.