Sobes.tech
Junior — Middle

Jaké kroky je třeba podniknout k správnému ukončení destrukce objektu nebo zdroje?

sobes.tech AI

Odpověď od AI

Pro správné zničení objektu nebo uvolnění zdrojů v iOS je třeba provést následující kroky:

  1. Uvolnit souvisejné zdroje — například zavřít soubory, zastavit časovače, zrušit síťové požadavky.
  2. Odstranit pozorovatele a oznámení — pokud je objekt přihlášen k oznámením nebo KVO, je třeba se odhlásit, aby nedocházelo ke únikům paměti.
  3. Nulovat silné odkazy — pokud existují cyklické odkazy, je třeba je přerušit, aby ARC mohl uvolnit paměť.
  4. Proveďte čištění v metodě deinit — ve Swift je destruktor deinit používán k provedení závěrečných akcí před zničením objektu.

Příklad:

class MyResource {
    var timer: Timer?

    init() {
        timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { _ in
            print("Tick")
        }
        NotificationCenter.default.addObserver(self, selector: #selector(handleNotification), name: .someNotification, object: nil)
    }

    @objc func handleNotification() {
        // zpracování
    }

    deinit {
        timer?.invalidate()
        NotificationCenter.default.removeObserver(self)
        print("MyResource byl zničen")
    }
}

Tímto způsobem správné zničení zajišťuje uvolnění zdrojů a zabraňuje únikům paměti.