Назад к вопросам
Разумные решения
СБЕР Страхование
Junior — Middle
68
Можете объяснить концепцию Capture List в контексте языка Swift и его применения?
Компании, где спрашивали
Uzum
Ответ от нейросети
sobes.tech AI
В Swift Capture List — это механизм, который позволяет контролировать, как замыкание захватывает переменные из окружающего контекста, особенно для управления памятью и предотвращения циклов удержания (retain cycles).
Capture List записывается в квадратных скобках перед телом замыкания и указывает, как именно захватывать переменные: по сильной ссылке (strong), слабой (weak) или без владельца (unowned).
Пример:
class ViewController {
var name = "Main"
func setup() {
let closure = { [weak self] in
guard let self = self else { return }
print(self.name)
}
closure()
}
}
Здесь [weak self] предотвращает сильный цикл удержания между замыканием и объектом self, что важно для корректного освобождения памяти.
Таким образом, Capture List помогает управлять жизненным циклом объектов внутри замыканий и избегать утечек памяти.