Middle — Middle+
Pode-se considerar uma referência fraca como opcional ou ela se comporta de forma diferente?
sobes.tech IA
Resposta da IA
Uma referência fraca em Swift é uma referência que não aumenta o contador de referências do objeto ao qual aponta. Ela é sempre declarada como opcional, porque o objeto ao qual ela se refere pode ser removido da memória, e então a referência fraca se torna automaticamente nil.
Ou seja, a referência fraca comporta-se como um opcional: pode conter um valor ou nil. Isso é importante para evitar o acesso a um objeto que já foi liberado.
Exemplo:
class Person {
var name: String
init(name: String) { self.name = name }
}
var person: Person? = Person(name: "Alex")
weak var weakPerson: Person? = person
print(weakPerson?.name) // Optional("Alex")
person = nil
print(weakPerson?.name) // nil, pois o objeto foi removido
Assim, a referência fraca é sempre opcional e torna-se automaticamente nil quando o objeto é removido.