Sobes.tech
Middle — Middle+

Môžeme považovať slabé odkazy za voliteľné alebo sa správajú inak?

sobes.tech AI

Odpoveď od AI

Slabé odkaz v Swift je odkaz, ktorý nezvyšuje čítač odkazov na objekt, na ktorý ukazuje. Vždy je deklarovaný ako voliteľný, pretože objekt, na ktorý odkazuje, môže byť odstránený z pamäti, a v takom prípade sa slabý odkaz automaticky stane nil.

Inými slovami, slabý odkaz sa správa ako voliteľný: môže obsahovať hodnotu alebo nil. To je dôležité na zabránenie prístupu k už uvoľnenému objektu.

Prí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, pretože objekt bol odstránený

Takto je slabý odkaz vždy voliteľný a automaticky sa stáva nil pri odstránení objektu.