Назад к вопросам
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 ссылок, объект удалится