Junior — Middle
Em que situações é preferível usar uma referência fraca (weak var) em Swift?
sobes.tech IA
Resposta da IA
As referências fracas (weak var) em Swift são usadas para evitar ciclos de referências fortes (retain cycles), que levam a fugas de memória. Recomenda-se usar referências fracas nas seguintes situações:
- Quando o objeto A referencia o objeto B, e o objeto B referencia de volta ao objeto A, e uma dessas referências deve ser fraca para evitar um ciclo.
- Em delegados (delegates), onde o delegado geralmente é declarado como weak para não manter o objeto delegado na memória.
Exemplo:
class ViewController: UIViewController {
var timer: Timer?
func startTimer() {
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { [weak self] _ in
self?.updateUI()
}
}
func updateUI() {
// atualização da interface
}
}
Aqui, self é capturado como uma referência fraca para evitar um ciclo de retenção entre o temporizador e o controlador.