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