Junior — Middle
Avez-vous déjà eu l'expérience de rechercher et de corriger des fuites de mémoire ou de ressources dans vos projets?
sobes.tech IA
Réponse de l'IA
Oui, dans des projets iOS, j'ai rencontré des fuites de mémoire, généralement liées à des références cycliques entre objets, par exemple entre des closures et des classes. Pour détecter ces fuites, j'ai utilisé les outils Instruments de Xcode avec les profils Leaks et Allocations.
J'ai corrigé les fuites en utilisant des références faibles (weak) ou non possédantes (unowned) là où c'était nécessaire pour rompre les cycles de rétention. J'ai également vérifié la libération correcte des ressources et la désinscription des notifications.
Exemple de référence faible dans une closure:
class ViewController: UIViewController {
var closure: (() -> Void)?
func setupClosure() {
closure = { [weak self] in
guard let self = self else { return }
print(self.view)
}
}
}