Junior — Middle
In welchen Situationen wird eine schwache Referenz auf ein Objekt verwendet?
sobes.tech KI
Antwort von AI
Eine schwache Referenz (weak reference) in iOS wird verwendet, um starke Referenzzyklen (retain cycles) zu vermeiden, die zu Speicherlecks führen können. Sie erhöht nicht den Referenzzähler des Objekts, sodass das Objekt auch dann freigegeben werden kann, wenn es schwache Referenzen darauf gibt.
Typische Anwendungsfälle für schwache Referenzen:
- Delegierte: werden oft als
weakdeklariert, um einen Zyklus zwischen dem Objekt und seinem Delegierten zu vermeiden. - Closures: Wenn ein Closure
selferfasst, um einen Zyklus zu vermeiden, wirdselfmit[weak self]erfasst. - Verbindungen zwischen Objekten, bei denen ein Objekt ein anderes besitzt, das aber eine Referenz ohne Besitz haben soll.
Beispiel mit Delegierten:
protocol SomeDelegate: AnyObject {
func didUpdate()
}
class SomeClass {
weak var delegate: SomeDelegate?
}
Auf diese Weise hilft die schwache Referenz, den Speicher zu verwalten und Lecks zu verhindern.