Middle
Cosa sai della lista di cattura in Swift?
sobes.tech AI
Risposta dell'AI
In Swift, la lista di cattura viene utilizzata nei closure per gestire la cattura delle variabili dal contesto circostante, in particolare per evitare cicli di riferimenti forti (retention cycles).
La lista di cattura si scrive tra parentesi quadre prima del corpo del closure e permette di specificare come le variabili saranno catturate — per riferimento forte (strong), debole (weak) o senza proprietario (unowned).
Esempio:
class ViewController {
var name = "Swift"
lazy var closure: () -> Void = { [weak self] in
guard let self = self else { return }
print(self.name)
}
}
Qui, [weak self] impedisce di mantenere un riferimento forte a self all’interno del closure, aiutando a prevenire perdite di memoria.
Pertanto, la lista di cattura è uno strumento per controllare il ciclo di vita degli oggetti catturati dal closure.