Middle
Wat weet je over de capture-lijst in Swift?
sobes.tech AI
Antwoord van AI
In Swift wordt de capture list gebruikt in closures om het vastleggen van variabelen uit de omringende context te beheren, vooral om sterke referentiecirkels (retains) te voorkomen.
De capture list wordt tussen vierkante haakjes vóór de body van de closure geschreven en stelt je in staat te specificeren hoe variabelen worden vastgelegd — door sterke verwijzing (strong), zwak (weak) of zonder eigenaar (unowned).
Voorbeeld:
class ViewController {
var name = "Swift"
lazy var closure: () -> Void = { [weak self] in
guard let self = self else { return }
print(self.name)
}
}
Hier voorkomt [weak self] dat er een sterke verwijzing naar self wordt vastgehouden binnen de closure, wat helpt geheugenlekken te voorkomen.
Dus, capture list is een hulpmiddel om de levenscyclus van door de closure vastgelegde objecten te controleren.