Sobes.tech
Junior — Middle

Оё метавонед механизмии коркарди ҷамъоварии партовро дар Swift ва чӣ гуна идора кардани хотираро шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

Дар Swift вуҷуд надорад, ки ба монанди баъзе забонҳои дигар классикии ҷамъкунандаи партов (Garbage Collector) дошта бошад. Ба ҷои он, механизмҳои ҳисобкунии худкории истинод (ARC - Automatic Reference Counting) истифода мешаванд.

ARC чунин кор мекунад: ҳар объект дар ёддошт ҳисобкунии истинод дорад, ки вақте ки истинод ба объект нав мешавад, меафзояд ва вақте ки истинод тоза мешавад ё nil мешавад, кам мешавад. Вақте ки ҳисобкунии истинод ба сифр мерасад, объект автоматӣ аз ёддошт тоза мешавад.

Масалан:

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

var person1: Person? = Person(name: "Иван")
var person2 = person1 // ҳисобкунии истинод меафзояд
person1 = nil // ҳисобкунии меафтад, аммо объект зинда мемонад, зеро person2 ба он ишора мекунад
person2 = nil // ҳисобкунии меафтад ва объект тоза мешавад

Тавре ки мебинем, идоракунии ёддошт дар Swift автоматӣ аст, ва барои даъвати мустақим ба ҷамъкунандаи партов ниёз нест, ки ин ба баланд бардоштани самаранокӣ ва кам кардани эҳтимолияти шикастҳои ёддошт кӯмак мекунад.