Middle
Que savez-vous de la liste de capture en Swift?
sobes.tech IA
Réponse de l'IA
En Swift, la liste de capture est utilisée dans les closures pour gérer la capture des variables du contexte environnant, en particulier pour éviter les cycles de références fortes (fuites de mémoire).
La liste de capture est écrite entre crochets avant le corps du closure et permet de spécifier comment les variables seront capturées — par référence forte (strong), faible (weak) ou sans propriétaire (unowned).
Exemple :
class ViewController {
var name = "Swift"
lazy var closure: () -> Void = { [weak self] in
guard let self = self else { return }
print(self.name)
}
}
Ici, [weak self] empêche de maintenir une référence forte à self à l’intérieur du closure, ce qui aide à éviter les fuites de mémoire.
Ainsi, la liste de capture est un outil pour contrôler le cycle de vie des objets capturés par le closure.