Sobes.tech
Middle

Čo viete o capture liste v Swift?

sobes.tech AI

Odpoveď od AI

V Swift-u se zoznam zachytenia používa v uzávierkach (closures) na riadenie zachytenia premenných z okolia, najmä na zabránenie cyklov silných odkazov (retain cycles).

Zo zoznamu zachytenia sa zapisuje do hranatých zátvoriek pred telom uzávierky a umožňuje špecifikovať, ako budú premenné zachytené — silným odkazom (strong), slabým (weak) alebo bez vlastníka (unowned).

Príklad:

class ViewController {
    var name = "Swift"
    lazy var closure: () -> Void = { [weak self] in
        guard let self = self else { return }
        print(self.name)
    }
}

Tu [weak self] zabraňuje udržiavaniu silného odkazu na self vnútri uzávierky, čo pomáha predchádzať únikom pamäti.

Zo zoznamu zachytenia je teda nástroj na kontrolu životného cyklu objektov zachytených uzávierkou.