Sobes.tech
Junior — Middle

Explique por que a ausência de valor numa referência fraca não causa erros ou consequências indesejadas na sua aplicação.

sobes.tech IA

Resposta da IA

Uma referência fraca (weak reference) no iOS não mantém o objeto na memória, portanto, quando não há mais referências fortes ao objeto, ele pode ser liberado pelo coletor de lixo (ARC). A ausência de valor numa referência fraca significa que o objeto já foi removido, e isso não causa erros se verificar corretamente a existência do objeto antes de usá-lo. Normalmente, referências fracas são usadas para evitar ciclos de retenção, por exemplo, em delegados:

class DelegateHolder {
    weak var delegate: SomeDelegate?
}

Se o delegado for removido, delegate torna-se nil, e isso é tratado de forma segura no código.