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

Когда уместно использовать слабую ссылку с помощью 'weak let'?

Компании, где спрашивали
МТСМТС

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

sobes.tech AI

Слабая ссылка с помощью weak let в Swift используется для предотвращения циклов сильных ссылок (retain cycles), особенно в замыканиях и делегатах. Она уместна, когда объект, на который ссылаются, может быть деинициализирован, и вы не хотите удерживать его в памяти.

Например, в замыкании, которое захватывает self, чтобы избежать утечки памяти, делают слабую ссылку:

class ViewController {
    var closure: (() -> Void)?

    func setup() {
        closure = { [weak self] in
            guard let self = self else { return }
            self.doSomething()
        }
    }

    func doSomething() {
        print("Action")
    }
}

Здесь weak предотвращает удержание self замыканием, что позволяет ViewController освободиться из памяти, когда он больше не нужен.