Sobes.tech
Junior — Middle

რა მეთოდებს იყენებთ თქვენი პროექტების მეხსიერების ნაკადების გამოვლენისათვის?

sobes.tech AI

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

iOS პროექტებში მეხსიერების ნაკადების გამოვლენის მიზნით ჩვეულებრივ ვიყენებ შემდეგ მეთოდებს:

  • Instruments ინსტრუმენტის გამოყენება (განსაკუთრებით Leaks და Allocations) მეხსიერების გამოყენების მონიტორინგისთვის და ნაკადების გამოვლენისათვის.
  • ძლიერი მითითებების ციკლების (retain cycles) ანალიზი Xcode Memory Graph Debugger-ის დახმარებით.
  • სლავ (weak) და უქმნელ (unowned) მითითებების სწორად გამოყენების შემოწმება დახურვებში და დელეგატებში.

მაგალითი: თუ ობიექტი A ინახავს ობიექტ B-ს, და B დახურვაში ინახავს A-ს უქმნელით, წარმოიქმნება ინახვის ციკლი და მეხსიერება არ თავისუფლდება.

class ViewController {
    var closure: (() -> Void)?
    func setup() {
        closure = { [weak self] in
            print(self?.description ?? "No self")
        }
    }
}

აქ [weak self] გამოყენება თავიდან აცილებს ნაკადებს.