Sobes.tech
Junior — Middle

რატომ არის რეკომენდებული კოდის გამოყენებისას სუსტი ბმული საკუთარ თავზე (weak self)?

sobes.tech AI

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

მოწოდების (weak self) გამოყენება აუცილებელია ძლიერი მითითების ციკლების (retain cycles) თავიდან ასაცილებლად, რომლებიც მეხსიერების გაჟონვას იწვევს.

როდესაც დახურვა იჭერს self-ს როგორც სუსტი მითითება და self შეიცავს ამ დახურვას (მაგალითად, თვისებაში), ისინი ერთმანეთს უჭერენ და არცერთი ობიექტი არ გამოყოფს.

სუსტი მითითების გამოყენების მაგალითი:

someAsyncCall { [weak self] in
    guard let self = self else { return }
    self.doSomething()
}

აქ, self იჭერება სუსტი, ამიტომ თუ self ობიექტი განადგურდება დახურვის შესრულებამდე, იგი არ შეინარჩუნებს მას მეხსიერებაში, რაც თავიდან აცილებს გაჟონვას.