Sobes.tech
Junior — Middle

Quelles étapes doivent être suivies pour une destruction correcte d'un objet ou d'une ressource ?

sobes.tech IA

Réponse de l'IA

Pour une destruction correcte d’un objet ou la libération de ressources dans iOS, il faut suivre les étapes suivantes :

  1. Libérer les ressources associées — par exemple, fermer les fichiers, arrêter les minuteries, annuler les requêtes réseau.
  2. Supprimer les observateurs et notifications — si l’objet est abonné à des notifications ou KVO, il faut se désabonner pour éviter les fuites.
  3. Réinitialiser les références fortes — si des références cycliques existent, les rompre pour que ARC puisse libérer la mémoire.
  4. Effectuer le nettoyage dans la méthode deinit — en Swift, le destructeur deinit est utilisé pour effectuer des actions finales avant la destruction de l’objet.

Exemple :

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

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

Ainsi, une destruction correcte garantit la libération des ressources et évite les fuites de mémoire.