Sobes.tech
Назад к вопросам
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 — это инструмент для контроля жизненного цикла объектов, захватываемых замыканием.