Junior — Middle
Wann ist es angemessen, eine schwache Referenz mit 'weak let' zu verwenden?
sobes.tech KI
Antwort von AI
Schwacher Verweis mit weak let in Swift wird verwendet, um starke Referenzzyklen (Retain Cycles) zu verhindern, insbesondere bei Closures und Delegierten. Es ist geeignet, wenn das referenzierte Objekt deinitialisiert werden kann und Sie es nicht im Speicher behalten möchten.
Zum Beispiel in einem Closure, das self erfasst, um Speicherlecks zu vermeiden, wird eine schwache Referenz verwendet:
class ViewController {
var closure: (() -> Void)?
func setup() {
closure = { [weak self] in
guard let self = self else { return }
self.doSomething()
}
}
func doSomething() {
print("Aktion")
}
}
Hier verhindert weak, dass self im Closure gehalten wird, was es ViewController ermöglicht, aus dem Speicher entlassen zu werden, wenn es nicht mehr benötigt wird.