Junior — Middle
Kdy je vhodné použít slabé odkazování pomocí 'weak let'?
sobes.tech AI
Odpověď od AI
Slabý odkaz s pomocí weak let v Swiftu se používá k prevenci cyklů silných odkazů (retention cycles), zejména v closures a delegatech. Je vhodný, když objekt, na který odkazujete, může být deinitializován, a nechcete ho udržovat v paměti.
Například v closure, která zachycuje self, se pro zabránění únikům paměti používá slabý odkaz:
class ViewController {
var closure: (() -> Void)?
func setup() {
closure = { [weak self] in
guard let self = self else { return }
self.doSomething()
}
}
func doSomething() {
print("Akce")
}
}
Zde weak zabraňuje udržování self v closure, což umožňuje uvolnění ViewController z paměti, když již není potřeba.