Junior — Middle
Программда объект тарабынан ээлеген эс тутумду кантип бошотуу керек?
sobes.tech AI
AIден жооп
iOS-та эс тутумдун боштондуулугу негизинен ARC (Automatic Reference Counting) системинин жардамы менен автоматтык түрдө болот. Ар бир объекттин шилтеме саны бар; ал жаңы күчтүү шилтеме түзүлгөндө өсөт жана ал алынып салынганда азаяды. Шилтеме саны нөлгө жеткенде, объект автоматтык түрдө жок кылынат жана эс тутум бошотулат.
Эгер коддо циклик шилтемелер пайда болсо (мисалы, эки объект күчтүү шилтемелер менен бири-бирине байланып калса), эс тутум бошотулбайт. Бул маселени чечүү үчүн, алсыз (weak) же ээси жок (unowned) шилтемелер колдонулат.
Мисал:
class Person {
var name: String
weak var apartment: Apartment? // цикли алдын алуу үчүн алсыз шилтеме
init(name: String) {
self.name = name
}
}
class Apartment {
let unit: String
unowned let tenant: Person // ээси жок шилтеме
init(unit: String, tenant: Person) {
self.unit = unit
self.tenant = tenant
}
}
Ошентип, шилтемелер туура башкарылса, эс тутум автоматтык түрдө бошотулат.