Sobes.tech
Junior — Middle

Программалоо тилинде күчтүү шилтемелерди колдонуу объекттин эс тутумда болуу мөөнөтүнө кандай таасир этет?

sobes.tech AI

AIден жооп

iOS-дөгү (жана Swift/Objective-C-деги) күчтүү (strong) шилтемелер — бул объекттерге карата жөнөкөй шилтемелер, алар объекттин шилтемелер санын көбөйтөт. Эгер объектке кеминде бир күчтүү шилтеме болсо, ал эс тутумдан өчүрүлбөйт.

Бул объекттин эс тутумда жашоосун улантууга мүмкүндүк берет, ал эми бардык күчтүү шилтемелер өчүрүлүп же nil болуп калганда, объект автоматтык түрдө бошотулат (ARC — Автоматтык шилтемелердин эсептелиши).

Мисал:

class Person {
    var name: String
    init(name: String) { self.name = name }
}

var person1: Person? = Person(name: "Alex") // күчтүү шилтеме
var person2 = person1 // шилтемелер санын көбөйтөт

person1 = nil // объект дагы эле бар, анткени person2 шилтеме кылып жатат
person2 = nil // эми объект бошотулат

Ошентип, күчтүү шилтемелер объекттин эс тутумда жашоо мөөнөтүнө түздөн-түз таасир этет — кеминде бирөө болсо, объект жашайт.