Sobes.tech
Junior — Middle

Verfügt die Struktur oder Klasse über eine Methode zur Ressourcenbereinigung oder einen Destruktor?

sobes.tech KI

Antwort von AI

In Swift haben Strukturen (struct) keine Destruktoren, da sie Werttypen sind und automatisch verwaltet werden. Klassen (class) hingegen können einen Destruktor haben — die Methode deinit, die vor der Freigabe der Instanz aus dem Speicher aufgerufen wird. Im Destruktor werden in der Regel Ressourcen freigegeben, Dateien geschlossen, Abonnements storniert usw.

Beispiel einer Klasse mit Destruktor:

class FileHandler {
    let fileName: String

    init(fileName: String) {
        self.fileName = fileName
        print("Datei geöffnet \(fileName)")
    }

    deinit {
        print("Datei geschlossen \(fileName)")
    }
}

var handler: FileHandler? = FileHandler(fileName: "data.txt")
handler = nil // ruft deinit auf

Daher haben nur Klassen einen Destruktor deinit, Strukturen nicht.