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