Sobes.tech
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)
        }
    }
}