Sobes.tech
Junior — Middle

Niyə bağlamalar istifadə edən kodda zəif özünə (weak self) istinad etmək tövsiyə olunur?

sobes.tech Süni İntellekt

AI-dan cavab

Zəif istinad (weak self) istifadə etmək, güclü istinad döngülərini (retain cycles) qarşısını almaq üçün vacibdir və bu, yaddaş sızıntılarına səbəb olur.

Bir bağlama self-i güclü istinad kimi tutursa və self bu bağlamanı ehtiva edirsə (məsələn, bir xüsusiyyətdə), onlar bir-birini saxlayır və heç biri sərbəst buraxılmır.

Zəif istinadın istifadəsi nümunəsi:

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

Burada, self zəif tutulur, ona görə də əgər self obyekti bağlamanın icrasından əvvəl məhv olunsa, bağlama onu yaddaşda saxlamayacaq və bu, sızıntını qarşısını alır.