Junior — Middle
Selgitage, miks nõrga viite puudumine teie rakenduses ei põhjusta vigu ega soovimatuid tagajärgi.
sobes.tech AI
Vastus AI-lt
iOS-süsteemis ei tugev viide (weak reference) ei hoia objekti mälus, seega kui objekti ei ole enam tugevaid viiteid, võib see vabastada prügikorjaja (ARC). Weak viite väärtuse puudumine tähendab, et objekt on juba kustutatud, ning see ei põhjusta vigu, kui kontrollite õigesti objekti olemasolu enne kasutamist. Tavaliselt kasutatakse weak viiteid, et vältida tsüklilisi viiteid, näiteks delegaatides:
class DelegateHolder {
weak var delegate: SomeDelegate?
}
Kui delegaadi objekt kustutatakse, muutub delegate nil-iks, ning see on koodis turvaliselt hallatav.