Junior — Middle
V akých situáciách by ste mali použiť kľúčové slovo `unowned` v Swift?
sobes.tech AI
Odpoveď od AI
Kľúčové slovo unowned v Swift sa používa na deklaráciu slabého odkazu, ktorý nie je voliteľný a nezvyšuje počítadlo odkazov na objekt.
Používa sa v situáciách, keď existuje cyklický odkaz medzi objektmi, ale je zaručené, že odkazovaný objekt bude existovať dlhšie ako odkaz unowned.
Napríklad v vzťahoch "rodič — dieťa", kde dieťa udržiava odkaz unowned na rodiča, aby sa predišlo cyklu:
class Parent {
var child: Child?
}
class Child {
unowned let parent: Parent
init(parent: Parent) {
self.parent = parent
}
}
let dad = Parent()
let kid = Child(parent: dad)
dad.child = kid
Ak bude objekt, na ktorý odkazuje unowned, odstránený, pokus o prístup k tomuto odkazu povedie k chybe počas behu. Preto je unowned vhodné, keď je životný cyklus objektu garantovaný, že bude dlhší ako odkaz na neho.