Sobes.tech
Junior — Middle

Kako napraviti slabu referencu u programskom jeziku?

sobes.tech АИ

Одговор од АИ

U iOS (Swift) za kreiranje slabe reference koristi se ključna reč weak. Slaba referenca ne povećava brojač referenci na objekat, što pomaže da se izbegnu ciklusi zadržavanja i curenja memorije.

Primer:

class Person {
    var name: String
    weak var apartment: Apartment? // slaba referenca

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

class Apartment {
    let unit: String
    var tenant: Person? // snažna referenca

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

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

U ovom primeru, Person sadrži slabu referencu na Apartment da bi se izbegao ciklus zadržavanja između Person i Apartment. Ako bi obe reference bile snažne, objekti ne bi bili oslobođeni iz memorije.

Važno: slabe reference treba da budu opcionalne (?), jer objekat na koji se odnose može biti obrisan.