Sobes.tech
Junior — Middle

Cum se poate face o referință slabă într-un limbaj de programare?

sobes.tech AI

Răspuns de la AI

În iOS (Swift), pentru a crea o referință slabă, se folosește cuvântul cheie weak. O referință slabă nu crește contorul de referințe al obiectului, ceea ce ajută la evitarea ciclurilor de retenție și a scurgerilor de memorie.

Exemplu:

class Person {
    var name: String
    weak var apartment: Apartment? // referință slabă

    init(name: String) {
        self.name = name
    }
}

class Apartment {
    let unit: String
    var tenant: Person? // referință puternică

    init(unit: String) {
        self.unit = unit
    }
}

// Utilizare:
let john = Person(name: "John")
let unit4A = Apartment(unit: "4A")
john.apartment = unit4A
unit4A.tenant = john

În acest exemplu, Person conține o referință slabă către Apartment pentru a evita un ciclu de retenție între Person și Apartment. Dacă ambele referințe ar fi puternice, obiectele nu ar fi eliberate din memorie.

Important: referințele slabe trebuie să fie opționale (?), deoarece obiectul la care se referă poate fi șters.