Sobes.tech
Junior — Middle

Bude objekt automaticky odstraněn z paměti, pokud na něj odkazují tři slabé (weak) a jeden nepovinný (unowned) odkaz?

sobes.tech AI

Odpověď od AI

Objekt bude automaticky odstraněn z paměti, pokud na něj nezůstane žádná silná (strong) reference. Slabé (weak) a nepovinné (unowned) reference nezvyšují počet referencí objektu. Ve vašem případě, pokud jsou pouze tři weak a jedna unowned reference, ale žádná strong, je objekt považován za nepoužívaný a bude uvolněn.

Příklad:

class MyClass {}

var strongRef: MyClass? = MyClass() // silná reference
weak var weakRef1 = strongRef
weak var weakRef2 = strongRef
weak var weakRef3 = strongRef
unowned var unownedRef = strongRef!

strongRef = nil // nyní nejsou žádné silné reference, objekt bude odstraněn