Junior — Middle
Wanneer vindt de automatische vrijgave van geheugen plaats voor een object waarnaar een sterke referentieteller wijst en dat ontoegankelijk wordt?
sobes.tech AI
Antwoord van AI
Automatisch geheugen vrijmaken voor een object met sterke referenties gebeurt wanneer de teller van sterke referenties naar dat object nul wordt, dat wil zeggen dat er geen sterke referentie meer naar het object wijst.
Op dat moment wordt het object ontoegankelijk en kan het worden verwijderd door het geheugenbeheersysteem (ARC in iOS). Als er ten minste één sterke referentie bestaat, blijft het object in het geheugen.
Voorbeeld:
class MyClass {}
var a: MyClass? = MyClass() // teller van sterke referenties = 1
var b = a // teller van sterke referenties = 2
a = nil // teller van sterke referenties = 1
b = nil // teller van sterke referenties = 0, object wordt vrijgegeven
Zo wordt geheugen automatisch vrijgegeven wanneer het object niet meer nodig is en er geen sterke referenties meer naar zijn.