Sobes.tech
Junior — Middle

გაქვს გამოცდილება შენი პროექტების მეხსიერების ან რესურსების გაჟონვის მოძიებაში და აღმოფხვრაში?

sobes.tech AI

პასუხი AI-სგან

დიახ, iOS პროექტებში მე შევხვდი მეხსიერების ნაკადებს, რომლებიც ჩვეულებრივ დაკავშირებულია ობიექტებს შორის ციკლურ მითითებებთან, მაგალითად, დახურვებს და კლასებს შორის. ამ ნაკადების აღმოჩენისთვის გამოვიყენე Xcode-ის ინსტრუმენტები, Leaks და Allocations პროფილებით.

მიწოდების ციკლების გაწყვეტის მიზნით, საჭიროების შემთხვევაში, გამოვიყენე სუსტი (weak) ან უვითარებელი (unowned) მითითებები. ასევე შევამოწმე რესურსების სწორი გათავისუფლება და შეტყობინებებიდან გასვლა.

სუსტი მითითების მაგალითი დახურვაში:

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

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