Sobes.tech
Junior — Middle

V jakém kontextu nebo za jakých okolností je volána metoda deinit ve Swiftu?

sobes.tech AI

Odpověď od AI

Metoda deinit v jazyce Swift je volána automaticky před tím, než bude instance třídy odstraněna z paměti. Jedná se o destruktor, který umožňuje uvolnit zdroje, zavřít soubory, zrušit pozorovatele a provést jinou úklidovou činnost.

deinit je volána za následujících okolností:

  • Když počet odkazů na objekt dosáhne nuly (ARC — automatické řízení paměti).
  • Před tím, než bude objekt de-inicializován a paměť uvolněna.

Příklad použití deinit:

class FileHandler {
    let fileName: String

    init(fileName: String) {
        self.fileName = fileName
        print("Soubor otevřen: \(fileName)")
    }

    deinit {
        print("Soubor zavřen: \(fileName)")
    }
}

func priklad() {
    let handler = FileHandler(fileName: "data.txt")
    // handler je použit uvnitř funkce
} // zde handler opouští rozsah, volá se deinit

Tedy, deinit je užitečný pro správu zdrojů a čištění při zániku objektu.