Sobes.tech
Junior — Middle

Vysvetlite, prečo absencia hodnoty v slabom odkaze nespôsobuje chyby alebo neželané dôsledky vo vašej aplikácii.

sobes.tech AI

Odpoveď od AI

Slabá referencia (weak reference) v iOS ne udrži objekt v pamäti, takže keď na objekt nie sú žiadne silné referencie, môže byť uvoľnený zberačom odpadu (ARC). Neprítomnosť hodnoty v slabé referencii znamená, že objekt už bol odstránený, a to nespôsobuje chyby, ak správne skontrolujete prítomnosť objektu pred použitím. Zvyčajne sa slabé referencie používajú na prevenciu cyklov udržiavania, napríklad v delegátoch:

class DelegateHolder {
    weak var delegate: SomeDelegate?
}

Ak je objekt delegáta odstránený, delegate sa stane nil, a to sa bezpečne spracováva v kóde.