Sobes.tech
Junior — Middle

Em que contexto ou sob quais circunstâncias o método deinit é chamado em Swift?

sobes.tech IA

Resposta da IA

O método deinit em Swift é chamado automaticamente antes de uma instância de classe ser removida da memória. É um destruidor que permite libertar recursos, fechar ficheiros, cancelar observadores e realizar outras limpezas.

deinit é chamado nas seguintes circunstâncias:

  • Quando o contador de referências a um objeto atinge zero (ARC — gestão automática de memória).
  • Antes de o objeto ser desinicializado e a memória ser libertada.

Exemplo de uso de deinit:

class FileHandler {
    let fileName: String

    init(fileName: String) {
        self.fileName = fileName
        print("Ficheiro aberto: \(fileName)")
    }

    deinit {
        print("Ficheiro fechado: \(fileName)")
    }
}

func exemplo() {
    let handler = FileHandler(fileName: "data.txt")
    // handler é usado dentro da função
} // aqui handler sai do âmbito, chama-se deinit

Assim, deinit é útil para gerir recursos e limpeza ao destruir um objeto.