Junior — Middle
Heeft de structuur of klasse een resource cleanup-methode of destructor?
sobes.tech AI
Antwoord van AI
In Swift hebben structs (struct) geen destructors, omdat het waarde-types zijn die automatisch worden beheerd. Klassen (class) kunnen echter een destructor hebben — de methode deinit, die wordt aangeroepen voordat het exemplaar uit het geheugen wordt vrijgegeven. In de destructor worden meestal bronnen vrijgegeven, bestanden gesloten, abonnementen geannuleerd, enz.
Voorbeeld van een klasse met destructor:
class FileHandler {
let fileName: String
init(fileName: String) {
self.fileName = fileName
print("Bestand geopend \(fileName)")
}
deinit {
print("Bestand gesloten \(fileName)")
}
}
var handler: FileHandler? = FileHandler(fileName: "data.txt")
handler = nil // roept deinit op
Dus, alleen klassen hebben een destructor deinit, structs niet.