Junior — Middle
Em que situações deve-se usar a palavra-chave `unowned` em Swift?
sobes.tech IA
Resposta da IA
A palavra-chave unowned em Swift é usada para declarar uma referência fraca que não é opcional e não aumenta o contador de referências do objeto.
É usada em situações onde existe um ciclo de referência entre objetos, mas garante-se que o objeto ao qual se refere existirá por mais tempo do que a referência unowned.
Por exemplo, em relações de "pai — filho", onde o filho mantém uma referência unowned ao pai para evitar um ciclo:
class Parent {
var child: Child?
}
class Child {
unowned let parent: Parent
init(parent: Parent) {
self.parent = parent
}
}
let dad = Parent()
let kid = Child(parent: dad)
dad.child = kid
Se o objeto ao qual se refere com unowned for removido, tentar acessá-lo causará um erro em tempo de execução. Portanto, unowned é adequado quando o ciclo de vida do objeto é garantido que será mais longo do que a referência a ele.