Sobes.tech
Junior — Middle

Welke stappen moeten worden gevolgd voor een correcte vernietiging van een object of resource?

sobes.tech AI

Antwoord van AI

Voor een correcte vernietiging van een object of het vrijmaken van bronnen in iOS, moeten de volgende stappen worden gevolgd:

  1. Gerelateerde bronnen vrijmaken — bijvoorbeeld, bestanden sluiten, timers stoppen, netwerkverzoeken annuleren.
  2. Observers en meldingen verwijderen — als het object zich heeft geabonneerd op meldingen of KVO, moet je je afmelden om geheugenlekken te voorkomen.
  3. Sterke verwijzingen op null zetten — als er cyclische verwijzingen zijn, deze doorbreken zodat ARC het geheugen kan vrijmaken.
  4. Opruimen uitvoeren in de deinit-methode — in Swift wordt de destructor deinit gebruikt om afsluitende acties uit te voeren voordat het object wordt vernietigd.

Voorbeeld:

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() {
        // verwerking
    }

    deinit {
        timer?.invalidate()
        NotificationCenter.default.removeObserver(self)
        print("MyResource gedeinitialiseerd")
    }
}

Op deze manier zorgt een correcte destructie voor het vrijmaken van bronnen en voorkomt geheugenlekken.