Junior — Middle
Jak lze vytvořit slabé odkazování v programovacím jazyce?
sobes.tech AI
Odpověď od AI
V iOS (Swift) se používá klíčové slovo weak k vytvoření slabé reference. Slabá reference nezvyšuje počítadlo odkazů na objekt, což pomáhá předcházet cyklům udržení a únikům paměti.
Příklad:
class Person {
var name: String
weak var apartment: Apartment? // slabá reference
init(name: String) {
self.name = name
}
}
class Apartment {
let unit: String
var tenant: Person? // silná reference
init(unit: String) {
self.unit = unit
}
}
// Použití:
let john = Person(name: "John")
let unit4A = Apartment(unit: "4A")
john.apartment = unit4A
unit4A.tenant = john
V tomto příkladu Person obsahuje slabou referenci na Apartment, aby se zabránilo cyklu udržení mezi Person a Apartment. Pokud by obě reference byly silné, objekty by nebyly uvolněny z paměti.
Důležité: slabé reference by měly být volitelné (?), protože objekt, na který odkazují, může být odstraněn.