Junior — Middle
Nima uchun yopilishlar bilan ishlaydigan kodda o'z-o'ziga zaif (weak self) havolasini ishlatish tavsiya etiladi?
sobes.tech AI
AIdan javob
Yumshoq referens (weak self) dan foydalanish, kuchli referens tsikllarini (retain cycles) oldini olish uchun zarur bo'lib, bu xotira oqishlariga olib keladi.
Agar yopilish selfni kuchli referens sifatida ushlasa va self bu yopilishni o'z ichiga olsa (masalan, xususiyatda), ular bir-birini ushlab turadi va hech biri bo'shatilmaydi.
Yumshoq referensdan foydalanish misoli:
someAsyncCall { [weak self] in
guard let self = self else { return }
self.doSomething()
}
Bu yerda, self zaif ushlanadi, shuning uchun agar self obyekti yopilishdan oldin yo'q qilinsa, yopilish uni xotirada ushlab qolmaydi, bu esa oqishni oldini oladi.