Sobes.tech
Junior — Middle

Verfügt Swift über eine automatische Speicherbereinigung, ähnlich wie GC in anderen Sprachen?

sobes.tech KI

Antwort von AI

In Swift wird die automatische Speicherbereinigung (GC) nicht im klassischen Sinne verwendet, wie in Java oder C#. Stattdessen verwendet Swift ein Referenzzählungssystem (ARC — Automatic Reference Counting). ARC verfolgt automatisch die Anzahl der Referenzen auf ein Objekt und gibt den Speicher frei, wenn keine Referenzen mehr vorhanden sind.

Beispiel:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

var person1: Person? = Person(name: "Ivan")
var person2 = person1 // erhöht den Referenzzähler
person1 = nil // das Objekt lebt noch, da person2 darauf verweist
person2 = nil // jetzt wird das Objekt freigegeben

Auf diese Weise arbeitet ARC automatisch, jedoch ohne Pausen und Overhead, die bei traditionellen Müllsammlern üblich sind.