Sobes.tech
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.