Sobes.tech
Junior — Middle

Wordt een object automatisch uit het geheugen verwijderd als het wordt aangeduid door drie zwakke (weak) en één niet-verplichte (unowned) verwijzing?

sobes.tech AI

Antwoord van AI

Het object wordt automatisch uit het geheugen verwijderd als er geen sterke (strong) verwijzingen meer naar zijn. Zwakke (weak) en niet-verplichte (unowned) verwijzingen verhogen de referentieteller van het object niet. In uw geval, als er slechts drie weak en één unowned verwijzing zijn, maar geen enkele strong, wordt het object als niet in gebruik beschouwd en wordt het gedealloceerd.

Voorbeeld:

class MyClass {}

var strongRef: MyClass? = MyClass() // sterke verwijzing
weak var weakRef1 = strongRef
weak var weakRef2 = strongRef
weak var weakRef3 = strongRef
unowned var unownedRef = strongRef!

strongRef = nil // nu zijn er geen sterke verwijzingen meer, het object wordt verwijderd