Junior — Middle
Ce pași trebuie urmați pentru a finaliza corect distrugerea unui obiect sau resursă?
sobes.tech AI
Răspuns de la AI
Pentru o distrugere corectă a unui obiect sau eliberarea resurselor în iOS, trebuie să urmați pașii următori:
- Eliberați resursele asociate — de exemplu, închideți fișierele, opriți temporizatoarele, anulați solicitările de rețea.
- Eliminați observatorii și notificările — dacă obiectul este abonat la notificări sau KVO, trebuie să vă dezabonați pentru a evita scurgerile de memorie.
- Resetați referințele puternice la null — dacă există referințe ciclice, rupeti-le pentru ca ARC să poată elibera memoria.
- Executați curățarea în metoda
deinit— în Swift, destructoruldeiniteste folosit pentru a efectua acțiuni finale înainte de distrugerea obiectului.
Exemplu:
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() {
// procesare
}
deinit {
timer?.invalidate()
NotificationCenter.default.removeObserver(self)
print("MyResource a fost distrus")
}
}
Astfel, o distrugere corectă asigură eliberarea resurselor și previne scurgerile de memorie.