Junior — Middle
U kojim situacijama se koristi slaba referenca na objekat?
sobes.tech АИ
Одговор од АИ
Slaba referenca (weak reference) u iOS se koristi za sprečavanje ciklusa jakih referenci (retain cycles), koji mogu dovesti do curenja memorije. Ona ne povećava brojač referenci na objekat, tako da objekat može biti oslobođen čak i ako postoje slabe reference na njega.
Tipične situacije korišćenja slabih referenci:
- Delegati: često se deklaršu kao
weakda bi se izbegao ciklus između objekta i njegovog delegata. - Closure-i: ako closure uhvati
self, da bi se izbegao ciklus,selfse hvata pomoću[weak self]. - Veze između objekata, gde jedan objekat poseduje drugi, a drugi treba da ima referencu bez vlasništva.
Primer sa delegatom:
protocol SomeDelegate: AnyObject {
func didUpdate()
}
class SomeClass {
weak var delegate: SomeDelegate?
}
Na ovaj način, slaba referenca pomaže u upravljanju memorijom i sprečava curenja.