Back to questions
СБЕР
СБЕР Сбол
Суточно.ру
DNS
VK
Дзен
Simbirsoft
Одноклассники
Junior — Middle
66
Можете ли вы объяснить концепцию слабых ссылок в программировании?
Companies where asked
Winline
Магнит Тех
О5.ru
Анор Банк
bip.ru
Answer from AI
sobes.tech AI
Слабые ссылки (weak references) — это ссылки на объекты, которые не препятствуют сборщику мусора удалять эти объекты из памяти. В отличие от сильных ссылок, слабые ссылки позволяют избежать утечек памяти, когда объект больше не нужен, но на него всё ещё есть ссылки.
Например, в iOS (Swift или Objective-C) слабые ссылки часто используются для предотвращения циклов удержания (retain cycles) между объектами, особенно в замыканиях или делегатах:
class ViewController: UIViewController {
var closure: (() -> Void)?
func setup() {
closure = { [weak self] in
self?.doSomething()
}
}
func doSomething() {
print("Action performed")
}
}
Здесь [weak self] гарантирует, что замыкание не будет удерживать self сильно, позволяя контроллеру освободиться из памяти, когда он больше не нужен.
Таким образом, слабые ссылки помогают управлять жизненным циклом объектов и предотвращают проблемы с памятью.