Junior — Middle
Ar objektas automatiškai bus pašalintas iš atminties, jei jį nurodo trys silpnos (weak) ir viena neprivaloma (unowned) nuoroda?
sobes.tech AI
Atsakymas iš AI
Objektas automatiškai bus pašalintas iš atminties, jei jam nebeliks stiprių (strong) nuorodų. Silpnos (weak) ir neprivalomos (unowned) nuorodos nepadidina objekto nuorodų skaičiaus. Jūsų atveju, jei yra tik trys weak ir viena unowned nuoroda, bet nėra jokių strong, objektas laikomas nenaudojamu ir bus deallocintas.
Pavyzdys:
class MyClass {}
var strongRef: MyClass? = MyClass() // stipri nuoroda
weak var weakRef1 = strongRef
weak var weakRef2 = strongRef
weak var weakRef3 = strongRef
unowned var unownedRef = strongRef!
strongRef = nil // dabar nėra stiprių nuorodų, objektas bus ištrintas