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.