Sobes.tech
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 объекттин жашоо цикли анын шилтемесинен узунураак болот деп кепилденсе, ылайыктуу болот.