Junior — Middle
Quando è opportuno usare un riferimento debole con 'weak let'?
sobes.tech AI
Risposta dell'AI
Il riferimento debole con weak let in Swift viene utilizzato per prevenire cicli di riferimenti forti (retention cycle), specialmente in closure e delegate. È appropriato quando l'oggetto a cui si fa riferimento può essere deallocato, e non si desidera mantenerlo in memoria.
Ad esempio, in una closure che cattura self, per evitare perdite di memoria, si utilizza un riferimento debole:
class ViewController {
var closure: (() -> Void)?
func setup() {
closure = { [weak self] in
guard let self = self else { return }
self.doSomething()
}
}
func doSomething() {
print("Azione")
}
}
Qui, weak impedisce di trattenere self nella closure, permettendo a ViewController di essere deallocato dalla memoria quando non è più necessario.