Junior — Middle
Swiftте `unowned` ачкыч сөзүн кай колдонуу керек?
sobes.tech AI
AIден жооп
Swiftтеги unowned ачкыч сөзү, опционал эмес жана объекттин шилтемелер санын көбөйтпөгөн алсыз шилтемени жарыялоо үчүн колдонулат.
Ал объекттердин ортосунда циклик шилтемеси бар учурларда колдонулат, бирок шилтемеленген объекттин unowned шилтемеден узак убакытка чейин болору кепилденет.
Мисалы, "ата-эне — бала" мамилелеринде, бала ата-энеге unowned шилтемени сактап, циклден качуу үчүн:
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
Эгер unowned менен шилтемеленген объект өчүрүлсө, ага кирүүгө аракет кылуу иштөө учурунда катага алып келет. Ошондуктан, unowned объекттин жашоо цикли анын шилтемесинен узунураак болот деп кепилденсе, ылайыктуу болот.