Sobes.tech
Junior — Middle

Quais são as vantagens e desvantagens de usar o tipo Unowned na programação?

sobes.tech IA

Resposta da IA

O tipo unowned em Swift é usado para criar uma referência fraca que não aumenta o contador de referências, mas presume-se que o objeto ao qual ela se refere sempre existirá durante o uso.

Vantagens:

  • Evita ciclos de referências fortes, prevenindo vazamentos de memória.
  • Não é opcional, portanto não requer desembrulhamento (unwrap).

Desvantagens:

  • Se o objeto ao qual unowned se refere for liberado, o acesso a essa referência causará um erro em tempo de execução.
  • Requer confiança de que o ciclo de vida do objeto referenciado é mais longo ou igual ao ciclo de vida da referência.

Exemplo de uso:

class Owner {
    var pet: Pet?
}

class Pet {
    unowned let owner: Owner
    init(owner: Owner) {
        self.owner = owner
    }
}

let owner = Owner()
owner.pet = Pet(owner: owner)

Aqui, Pet mantém uma referência unowned ao Owner para evitar ciclos de referências fortes.