Junior — Middle
Are structura sau clasa are o metodă de curățare a resurselor sau un destructor?
sobes.tech AI
Răspuns de la AI
În Swift, structurile (struct) nu au destructori, deoarece sunt tipuri de valoare și sunt gestionate automat. Clasele (class), în schimb, pot avea un destructor — metoda deinit, care este apelată înainte de eliberarea instanței din memorie. În destructor, de obicei, se eliberează resurse, se închid fișiere, se anulează abonamente etc.
Exemplu de clasă cu destructor:
class FileHandler {
let fileName: String
init(fileName: String) {
self.fileName = fileName
print("Fișier deschis \(fileName)")
}
deinit {
print("Fișier închis \(fileName)")
}
}
var handler: FileHandler? = FileHandler(fileName: "data.txt")
handler = nil // va apela deinit
Prin urmare, doar clasele au destructor deinit, structurile nu.