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.