Junior — Middle
Da li struktura ili klasa ima metodu za čišćenje resursa ili destruktor?
sobes.tech АИ
Одговор од АИ
У Swift, strukture (struct) nemaju destruktore, jer su to tipovi vrednosti i automatski se upravljaju. Klase (class), s druge strane, mogu imati destruktor — metod deinit, koji se poziva pre oslobađanja instance iz memorije. U destruktoru se obično oslobađaju resursi, zatvaraju fajlovi, otkazuje pretplate itd.
Primer klase sa destruktorom:
class FileHandler {
let fileName: String
init(fileName: String) {
self.fileName = fileName
print("Fajl otvoren \(fileName)")
}
deinit {
print("Fajl zatvoren \(fileName)")
}
}
var handler: FileHandler? = FileHandler(fileName: "data.txt")
handler = nil // pozvaće deinit
Dakle, samo klase imaju destruktor deinit, strukture nemaju.