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.