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

Можете ли вы объяснить концепцию слабых ссылок в программировании?

Компании, где спрашивали
Winline
СБЕРСБЕР
Магнит Тех
О5.ru
СБЕР СболСБЕР Сбол
Суточно.руСуточно.ру
Анор Банк
DNSDNS
VKVK
bip.ru
ДзенДзен
SimbirsoftSimbirsoft
ОдноклассникиОдноклассники

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

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 сильно, позволяя контроллеру освободиться из памяти, когда он больше не нужен.

Таким образом, слабые ссылки помогают управлять жизненным циклом объектов и предотвращают проблемы с памятью.