Sobes.tech
Junior — Middle

Оё объект автоматӣ аз ёдгирӣ хориҷ мешавад, агар ба он се истинодҳои заиф (weak) ва як истиноди беҳуқуқ (unowned) ишора кунад?

sobes.tech AI

Ҷавоб аз AI

Объект автоматично ще бъде изтрит от паметта, ако няма останали силни (strong) препратки към него. Слабите (weak) и необходими (unowned) препратки не увеличават броя на препратките към обекта. Във вашия случай, ако има само три weak и една unowned препратки, но няма нито една strong, обектът се счита за неизползван и ще бъде деалокирана.

Пример:

class MyClass {}

var strongRef: MyClass? = MyClass() // силна препратка
weak var weakRef1 = strongRef
weak var weakRef2 = strongRef
weak var weakRef3 = strongRef
unowned var unownedRef = strongRef!

strongRef = nil // сега няма силни препратки, обектът ще бъде изтрит