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.