Sobes.tech
Junior — Middle

Layihələrinizdə yaddaş və ya resurs sızıntılarını tapmaq və aradan qaldırmaq təcrübəniz varmı?

sobes.tech Süni İntellekt

AI-dan cavab

Bəli, iOS layihələrində yaddaş sızıntıları ilə rastlaşmışam, ən çox obyektlər arasında dövr edən istinadlar ilə əlaqəli olur, məsələn, bağlamalar və siniflər arasında. Belə sızıntıları tapmaq üçün Xcode-un Instruments alətlərindən Leaks və Allocations profilerlərindən istifadə etdim.

Sızıntıları aradan qaldırmaq üçün, tutma döngələrini qırmaq üçün lazım olduqda zəif (weak) və ya mülkiyyət olmayan (unowned) istinadlar tətbiq etdim. Həmçinin, resursların düzgün azad olunmasını və bildirişlərdən çıxışını yoxladım.

Zəif istinad nümunəsi bağlamada:

class ViewController: UIViewController {
    var closure: (() -> Void)?

    func setupClosure() {
        closure = { [weak self] in
            guard let self = self else { return }
            print(self.view)
        }
    }
}