Назад к вопросам
МТС
Junior — Middle
80
В каких ситуациях предпочтительнее использовать слабую ссылку (weak var) в Swift?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Слабые ссылки (weak var) в Swift используются для предотвращения циклов сильных ссылок (retain cycles), которые приводят к утечкам памяти. Предпочтительно применять слабые ссылки в следующих ситуациях:
- Когда объект A ссылается на объект B, а объект B ссылается обратно на объект A, и одна из этих ссылок должна быть слабой, чтобы избежать цикла.
- В делегатах (delegates), где делегат обычно объявляется как weak, чтобы не удерживать объект делегата в памяти.
Пример:
class ViewController: UIViewController {
var timer: Timer?
func startTimer() {
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { [weak self] _ in
self?.updateUI()
}
}
func updateUI() {
// обновление интерфейса
}
}
Здесь self захватывается слабой ссылкой, чтобы избежать retain cycle между таймером и контроллером.