Sobes.tech
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 weak deklariert, um einen Zyklus zwischen dem Objekt und seinem Delegierten zu vermeiden.
  • Closures: Wenn ein Closure self erfasst, um einen Zyklus zu vermeiden, wird self mit [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.