Junior — Middle
Mal si skúsenosti s hľadaním a odstraňovaním únikov pamäte alebo zdrojov vo svojich projektoch?
sobes.tech AI
Odpoveď od AI
Áno, v projektoch iOS som sa stretol s únikmi pamäte, zvyčajne súvisiacimi s cyklickými odkazmi medzi objektmi, napríklad medzi uzávermi a triedami. Na detekciu týchto únikov som používal nástroje Instruments v Xcode s profilmi Leaks a Allocations.
Opravil som úniky použitím slabých (weak) alebo bezvlastníckych (unowned) odkazov tam, kde bolo potrebné, aby sa prerušili cykly držania. Tiež som kontroloval správne uvoľnenie zdrojov a odhlásenie z oznámení.
Príklad slabého odkazu v uzávere:
class ViewController: UIViewController {
var closure: (() -> Void)?
func setupClosure() {
closure = { [weak self] in
guard let self = self else { return }
print(self.view)
}
}
}