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 :
- Libérer les ressources associées — par exemple, fermer les fichiers, arrêter les minuteries, annuler les requêtes réseau.
- Supprimer les observateurs et notifications — si l’objet est abonné à des notifications ou KVO, il faut se désabonner pour éviter les fuites.
- 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.
- Effectuer le nettoyage dans la méthode
deinit— en Swift, le destructeurdeinitest 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.