Sobes.tech
Назад к вопросам
Junior — Middle
74

Будет ли автоматически удалён объект из памяти, если на него указывает три слабых (weak) и одна необязанная (unowned) ссылка?

Ответ от нейросети

sobes.tech AI

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

Пример:

class MyClass {}

var strongRef: MyClass? = MyClass() // strong ссылка
weak var weakRef1 = strongRef
weak var weakRef2 = strongRef
weak var weakRef3 = strongRef
unowned var unownedRef = strongRef!

strongRef = nil // теперь нет strong ссылок, объект удалится