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ý