Sobes.tech
Junior — Middle

Kako utječe korišćenje slabih referenci na upravljanje životnim ciklusom objekata u memoriji?

sobes.tech АИ

Одговор од АИ

Slabe reference (weak references) u iOS-u (i uopšte u upravljanju memorijom) omogućavaju referencu na objekat bez ometanja njegovog brisanja od strane sakupljača smeća ili ARC (Automatsko brojanje referenci) sistema. Ako je objekat dostupan samo putem slabih referenci, on može biti oslobođen iz memorije.

Ovo pomaže da se izbegnu cikličke zavisnosti i curenja memorije, jer slab referenca ne povećava brojač referenci objekta.

Primer u Swift-u:

class Person {
    var name: String
    weak var delegate: SomeDelegate?
    init(name: String) {
        self.name = name
    }
}

Ovde, delegate je slab referenca da bi se izbeglo zadržavanje objekta i moguće ciklične reference.