Sobes.tech
Junior — Middle

Программалоо тилинде алсыз шилтемени кантип түзүү керек?

sobes.tech AI

AIден жооп

iOS (Swift) ичинде алсыз шилтемени түзүү үчүн weak ачкыч сөзү колдонулат. Алсыз шилтеме объекттин шилтеме санын көбөйтпөйт, бул сактоо цикли жана эс тутум агып кетүүнүн алдын алууга жардам берет.

Мисал:

class Person {
    var name: String
    weak var apartment: Apartment? // алсыз шилтеме

    init(name: String) {
        self.name = name
    }
}

class Apartment {
    let unit: String
    var tenant: Person? // күчтүү шилтеме

    init(unit: String) {
        self.unit = unit
    }
}

// Колдонуу:
let john = Person(name: "John")
let unit4A = Apartment(unit: "4A")
john.apartment = unit4A
unit4A.tenant = john

Бул мисалда, Person Apartmentка алсыз шилтеме менен байланышкан, бул Person жана Apartment ортосунда сактоо циклин алдын алат. Эгер эки шилтеме да күчтүү болсо, объекттер эс тутумдан чыгарылбайт.

Маанилүү: алсыз шилтемелер опционалдуу болушу керек (?), анткени аларга шилтемелүү объект өчүрүлүшү мүмкүн.