Junior — Middle
Оё метавонед механизмии идораи худкӯши хотира дар ARC ва чӣ гуна озод кардани объектҳои нопайдошударо шарҳ диҳед?
sobes.tech AI
Ҷавоб аз AI
ARC (Автоматикӣ Референсҳои ҳисобкунии) як механизми идоракунии хотира дар iOS мебошад, ки ба таври автоматӣ шумораи истинодҳоро ба объектҳо пайгирӣ мекунад ва вақте ки онҳо дигар лозим нестанд, онҳоро озод мекунад.
Принсипи кор:
- Ҳар як объект дорои ҳисобкунаки истинод (retention count) мебошад.
- Вақте ки ба объект истинод сохта мешавад, ҳисобкунак меафзояд.
- Вақте ки истинод хориҷ карда мешавад, ҳисобкунак кам мешавад.
- Вақте ки ҳисобкунак ба сифр мерасад, объект автоматӣ аз хотира хориҷ карда мешавад.
ARC дар марҳилаи компилятсия кор мекунад, бо илова кардани даъватҳои retain/release ба код, бинобар ин, барномасоз бояд хотираро дастӣ идора накунад.
Масалан дар Swift:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
var person1: Person? = Person(name: "Иван") // ҳисобкунаки нигоҳдорӣ = 1
var person2 = person1 // ҳисобкунаки нигоҳдорӣ = 2
person1 = nil // ҳисобкунаки нигоҳдорӣ = 1
person2 = nil // ҳисобкунаки нигоҳдорӣ = 0, объект Person хориҷ карда мешавад
Ин тариқ, ARC автоматӣ объектҳоро озод мекунад, вақте ки дигар истинодҳои фаъол ба онҳо вуҷуд надорад.