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:
- Gerelateerde bronnen vrijmaken — bijvoorbeeld, bestanden sluiten, timers stoppen, netwerkverzoeken annuleren.
- Observers en meldingen verwijderen — als het object zich heeft geabonneerd op meldingen of KVO, moet je je afmelden om geheugenlekken te voorkomen.
- Sterke verwijzingen op null zetten — als er cyclische verwijzingen zijn, deze doorbreken zodat ARC het geheugen kan vrijmaken.
- Opruimen uitvoeren in de
deinit-methode — in Swift wordt de destructordeinitgebruikt 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.