Sobes.tech
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.