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 ობიექტი განადგურდება დახურვის შესრულებამდე, იგი არ შეინარჩუნებს მას მეხსიერებაში, რაც თავიდან აცილებს გაჟონვას.