Junior — Middle
Wann erfolgt die automatische Freigabe des Speichers für ein Objekt, auf das ein starker Referenzzähler zeigt, und es wird unzugänglich?
sobes.tech KI
Antwort von AI
Die automatische Freigabe des Speichers für ein Objekt mit starken Referenzen erfolgt, wenn der Zähler der starken Referenzen auf dieses Objekt null erreicht – das heißt, keine starke Referenz zeigt mehr auf das Objekt.
In diesem Moment wird das Objekt unzugänglich und kann vom Speicherverwaltungssystem (ARC in iOS) entfernt werden. Wenn mindestens eine starke Referenz existiert, bleibt das Objekt im Speicher.
Beispiel:
class MyClass {}
var a: MyClass? = MyClass() // Zähler der starken Referenzen = 1
var b = a // Zähler der starken Referenzen = 2
a = nil // Zähler der starken Referenzen = 1
b = nil // Zähler der starken Referenzen = 0, Objekt wird freigegeben
Auf diese Weise erfolgt die Speicherfreigabe automatisch, wenn das Objekt nicht mehr benötigt wird und keine starken Referenzen mehr darauf bestehen.