Middle — Middle+
Poate fi considerată o referință slabă opțională sau se comportă diferit?
sobes.tech AI
Răspuns de la AI
O referință slabă în Swift este o referință care nu crește contorul de referințe al obiectului către care indică. Este întotdeauna declarată ca opțională, deoarece obiectul la care face referire poate fi eliminat din memorie, iar în acest caz referința slabă devine automat nil.
Cu alte cuvinte, referința slabă se comportă ca un opțional: poate conține o valoare sau nil. Acest lucru este important pentru a evita accesarea unui obiect deja eliberat.
Exemplu:
class Person {
var name: String
init(name: String) { self.name = name }
}
var person: Person? = Person(name: "Alex")
weak var weakPerson: Person? = person
print(weakPerson?.name) // Optional("Alex")
person = nil
print(weakPerson?.name) // nil, deoarece obiectul a fost eliminat
Prin urmare, referința slabă este întotdeauna opțională și devine automat nil atunci când obiectul este eliminat.