Junior — Middle
La structure ou la classe possède-t-elle une méthode de nettoyage des ressources ou un destructeur?
sobes.tech IA
Réponse de l'IA
En Swift, les structures (struct) n'ont pas de destructeurs, car ce sont des types de valeur gérés automatiquement. Les classes (class), en revanche, peuvent avoir un destructeur — la méthode deinit, appelée avant la libération de l'instance de la mémoire. Le destructeur libère généralement des ressources, ferme des fichiers, annule des abonnements, etc.
Exemple d'une classe avec destructeur :
class FileHandler {
let fileName: String
init(fileName: String) {
self.fileName = fileName
print("Fichier ouvert \(fileName)")
}
deinit {
print("Fichier fermé \(fileName)")
}
}
var handler: FileHandler? = FileHandler(fileName: "data.txt")
handler = nil // appellera deinit
Ainsi, seules les classes ont un destructeur deinit, les structures non.