Junior — Middle
Da li će objekat biti automatski uklonjen iz memorije ako ga ukazuju tri slabe (weak) i jedna neobavezna (unowned) referenca?
sobes.tech АИ
Одговор од АИ
Objekat će automatski biti uklonjen iz memorije ako na njega ne ostanu jake (strong) reference. Slabe (weak) i neobavezne (unowned) reference ne povećavaju brojač referenci objekta. U vašem slučaju, ako postoje samo tri weak i jedna unowned reference, ali nema nijedne strong, objekat se smatra neupotrebljivim i biće deallociran.
Primer:
class MyClass {}
var strongRef: MyClass? = MyClass() // jaka referenca
weak var weakRef1 = strongRef
weak var weakRef2 = strongRef
weak var weakRef3 = strongRef
unowned var unownedRef = strongRef!
strongRef = nil // sada nema jakih referenci, objekat će biti uklonjen