Sobes.tech
Junior — Middle

¿Tiene la estructura o clase un método de limpieza de recursos o un destructor?

sobes.tech AI

Respuesta de la IA

En Swift, las estructuras (struct) no tienen destructores, ya que son tipos de valor y se gestionan automáticamente. Las clases (class), en cambio, pueden tener un destructor — el método deinit, que se llama antes de liberar la instancia de la memoria. En el destructor generalmente se liberan recursos, se cierran archivos, se cancelan suscripciones, etc.

Ejemplo de una clase con destructor:

class FileHandler {
    let fileName: String

    init(fileName: String) {
        self.fileName = fileName
        print("Archivo abierto \(fileName)")
    }

    deinit {
        print("Archivo cerrado \(fileName)")
    }
}

var handler: FileHandler? = FileHandler(fileName: "data.txt")
handler = nil // llamará a deinit

Por lo tanto, solo las clases tienen destructor deinit, las estructuras no.