Sobes.tech
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