Junior — Middle
Que comportamento é esperado ao declarar uma variável user usando uma referência fraca através de weak var user = User()?
sobes.tech IA
Resposta da IA
No Swift, a declaração de uma variável com weak var user = User() cria uma referência fraca ao objeto User. Isso significa que a referência não aumenta o contador de referências do objeto, e se não houver mais referências fortes a esse objeto, ele será desalocado (removido da memória).
Neste caso, se user for a única referência ao objeto User, então imediatamente após a criação do objeto, ele será liberado e user será igual a nil.
Exemplo:
class User {}
weak var user = User() // user será nil imediatamente, pois não há referências fortes
print(user) // nil
Por isso, referências fracas geralmente são declaradas como opcionais (weak var user: User?), e são usadas para evitar ciclos de retenção, por exemplo, em delegados.