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