Sobes.tech
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 weak para 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.