Junior — Middle
Wat gedrag wordt verwacht bij het declareren van een variabele user met behulp van een zwakke verwijzing via weak var user = User()?
sobes.tech AI
Antwoord van AI
In Swift creëert de declaratie van een variabele met weak var user = User() een zwakke verwijzing naar het User-object. Dit betekent dat de verwijzing de referentieteller van het object niet verhoogt, en als er geen sterke verwijzingen meer naar dat object zijn, wordt het gedeïntialiseerd (verwijderd uit het geheugen).
In dit geval, als user de enige verwijzing naar het User-object is, wordt het object onmiddellijk na creatie vrijgegeven en wordt user nil.
Voorbeeld:
class User {}
weak var user = User() // user wordt onmiddellijk nil, omdat er geen sterke verwijzingen zijn
print(user) // nil
Daarom worden zwakke verwijzingen meestal gedeclareerd als optioneel (weak var user: User?) en worden ze gebruikt om retentiecycli te voorkomen, bijvoorbeeld in delegaten.