Junior — Middle
Em que situações é utilizada uma referência fraca a um objeto?
sobes.tech IA
Resposta da IA
Uma referência fraca (weak reference) no iOS é usada para evitar ciclos de referências fortes (retain cycles), que podem levar a vazamentos de memória. Ela não aumenta o contador de referências do objeto, portanto, o objeto pode ser liberado mesmo que existam referências fracas a ele.
Situações típicas de uso de referências fracas:
- Delegados: frequentemente declarados como
weakpara evitar um ciclo entre o objeto e seu delegado. - Closures: se uma closure captura
self, para evitar um ciclo,selfé capturado com[weak self]. - Conexões entre objetos, onde um objeto possui outro, e o outro deve ter uma referência sem possuir.
Exemplo com delegado:
protocol SomeDelegate: AnyObject {
func didUpdate()
}
class SomeClass {
weak var delegate: SomeDelegate?
}
Assim, a referência fraca ajuda a gerenciar a memória e prevenir vazamentos.