Sobes.tech
Junior — Middle

Kā izveidot vāju atsauci programmēšanas valodā?

sobes.tech AI

Atbilde no AI

iOS (Swift) vidē, lai izveidotu vāju atsauci, tiek izmantots atslēgas vārds weak. Vāja atsauce nepalielina objekta atsauces skaitītāju, kas palīdz izvairīties no noturēšanas cikliem un atmiņas noplūdēm.

Piemērs:

class Person {
    var name: String
    weak var apartment: Apartment? // vāja atsauce

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

class Apartment {
    let unit: String
    var tenant: Person? // stipra atsauce

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

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

Šajā piemērā, Person satur vāju atsauci uz Apartment, lai izvairītos no noturēšanas cikla starp Person un Apartment. Ja abas atsauces būtu stipras, objekti netiktu atbrīvoti no atmiņas.

Svarīgi: vājās atsauces jābūt opcijām (?), jo objekts, uz kuru tās attiecas, var tikt dzēsts.