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.