Sobes.tech
Junior — Middle

Bude objektívne automaticky odstránený z pamäte, ak na neho ukazuje tri slabé (weak) a jedna nevyžadovaná (unowned) referencia?

sobes.tech AI

Odpoveď od AI

Objekt bude automaticky odstránený z pamäte, ak na neho nezostanú žiadne silné (strong) odkazy. Slabé (weak) a nevyžadované (unowned) odkazy nezvyšujú počet odkazov na objekt. Vo vašom prípade, ak sú len tri weak a jeden unowned odkaz, ale žiadny strong, objekt sa považuje za nepoužívaný a bude deallocovaný.

Príklad:

class MyClass {}

var strongRef: MyClass? = MyClass() // silný odkaz
weak var weakRef1 = strongRef
weak var weakRef2 = strongRef
weak var weakRef3 = strongRef
unowned var unownedRef = strongRef!

strongRef = nil // teraz nie sú žiadne silné odkazy, objekt bude odstránený