Junior — Middle
Vai struktūrai vai klasei ir resursu tīrīšanas metode vai destruktors?
sobes.tech AI
Atbilde no AI
Swift struktūrām (struct) nav destruktora, jo tās ir vērtību tipi un tiek automātiski pārvaldītas. Klases (class) var būt ar destruktoru — metodi deinit, kas tiek izsaukts pirms objekta atbrīvošanas no atmiņas. Parasti destruktorā tiek atbrīvoti resursi, aizver faili, atceļ abonementus utt.
Piemērs ar klasi un destruktoru:
class FileHandler {
let fileName: String
init(fileName: String) {
self.fileName = fileName
print("Fails atvērts \(fileName)")
}
deinit {
print("Fails aizvērts \(fileName)")
}
}
var handler: FileHandler? = FileHandler(fileName: "data.txt")
handler = nil // izsauks deinit
Tādēļ tikai klases ir ar destruktoru deinit, struktūras — nē.