Назад к вопросам
Middle
159
Что вы знаете о capture list в Swift?
Ответ от нейросети
sobes.tech AI
В Swift capture list используется в замыканиях для управления захватом переменных из окружающего контекста, особенно чтобы избежать циклов сильных ссылок (retain cycles).
Capture list записывается в квадратных скобках перед телом замыкания и позволяет указать, как именно переменные будут захвачены — по сильной ссылке (strong), слабой (weak) или без владельца (unowned).
Пример:
class ViewController {
var name = "Swift"
lazy var closure: () -> Void = { [weak self] in
guard let self = self else { return }
print(self.name)
}
}
Здесь [weak self] предотвращает удержание сильной ссылки на self внутри замыкания, что помогает избежать утечки памяти.
Таким образом, capture list — это инструмент для контроля жизненного цикла объектов, захватываемых замыканием.