Junior — Middle
În ce situații se folosește o referință slabă către un obiect?
sobes.tech AI
Răspuns de la AI
O referință slabă (weak reference) în iOS este utilizată pentru a preveni ciclurile de referințe puternice (retain cycles), care pot duce la scurgeri de memorie. Nu crește contorul de referințe al obiectului, astfel încât obiectul poate fi eliberat chiar dacă există referințe slabe către el.
Situații tipice de utilizare a referințelor slabe:
- Delegați: adesea declarați ca
weakpentru a evita un ciclu între obiect și delegatul său. - Closure-uri: dacă un closure capturează
self, pentru a evita un ciclu,selfeste capturat cu[weak self]. - Conexiuni între obiecte, unde un obiect deține altul, iar celălalt trebuie să aibă o referință fără a deține.
Exemplu cu delegat:
protocol SomeDelegate: AnyObject {
func didUpdate()
}
class SomeClass {
weak var delegate: SomeDelegate?
}
Astfel, referința slabă ajută la gestionarea memoriei și prevenirea scurgerilor.