Middle — Middle+
Lze slabé odkazy považovat za volitelné, nebo se chovají jinak?
sobes.tech AI
Odpověď od AI
Slabé odkaz v Swiftu je odkaz, který nezvyšuje čítač odkazů na objekt, na který ukazuje. Vždy je deklarován jako volitelný, protože objekt, na který odkazuje, může být odstraněn z paměti, a v takovém případě se slabý odkaz automaticky stane nil.
Jde o to, že slabý odkaz se chová jako volitelný: může obsahovat hodnotu nebo nil. To je důležité, aby se zabránilo přístupu k již uvolněnému objektu.
Příklad:
class Person {
var name: String
init(name: String) { self.name = name }
}
var person: Person? = Person(name: "Alex")
weak var weakPerson: Person? = person
print(weakPerson?.name) // Optional("Alex")
person = nil
print(weakPerson?.name) // nil, protože objekt byl odstraněn
Tímto způsobem je slabý odkaz vždy volitelný a automaticky se stává nil při odstranění objektu.