Junior — Middle
Se va șterge automat un obiect din memorie dacă este indicat de trei referințe slabe (weak) și o referință neobligatorie (unowned)?
sobes.tech AI
Răspuns de la AI
Obiectul va fi eliminat automat din memorie dacă nu mai există referințe puternice (strong) către el. Referințele slabe (weak) și cele neobligatorii (unowned) nu cresc contorul de referințe al obiectului. În cazul dumneavoastră, dacă există doar trei referințe weak și una unowned, dar nicio referință strong, obiectul este considerat neutilizat și va fi deallocat.
Exemplu:
class MyClass {}
var strongRef: MyClass? = MyClass() // referință puternică
weak var weakRef1 = strongRef
weak var weakRef2 = strongRef
weak var weakRef3 = strongRef
unowned var unownedRef = strongRef!
strongRef = nil // acum nu mai există referințe puternice, obiectul va fi șters