Junior — Middle
Има ли структурата или класът метод за почистване на ресурси или деструктор?
sobes.tech AI
Отговор от AI
В Swift структурите (struct) нямат деструктори, тъй като са типове по стойност и се управляват автоматично. Класовете (class) обаче могат да имат деструктор — метода deinit, който се извиква преди освобождаването на обекта от паметта. В деструктора обикновено се освобождават ресурси, затварят се файлове, отменят се абонаменти и т.н.
Пример за клас с деструктор:
class FileHandler {
let fileName: String
init(fileName: String) {
self.fileName = fileName
print("Отворен файл \(fileName)")
}
deinit {
print("Затворен файл \(fileName)")
}
}
var handler: FileHandler? = FileHandler(fileName: "data.txt")
handler = nil // ще извика deinit
Затова, само класовете имат деструктор deinit, структурите — не.