Sobes.tech
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.