Sobes.tech
Junior — Middle

آیا iOS از پاکسازی خودکار حافظه برای مدیریت منابع استفاده می‌کند؟

sobes.tech AI

Ҷавоб аз AI

iOS дар бораи тозакунӣ автоматӣ дар хотира дар маънои анъанавӣ, мисли ҷамъкунандаи партовҳо дар JavaScript ё Java, истифода намебарад. Баръакс, iOS системаи идораи хотираро истифода мебарад, ки ARC (Counting Automatic Reference) ном дорад.

ARC ба таври автоматӣ шумораи истинодҳоро ба объектҳо пайгирӣ мекунад ва вақте ки объект дигар истифода намешавад, хотираро озод мекунад. Барномасоз наменависад код барои озод кардани хотира дастӣ, аммо бояд назорат кунад, ки идораи истинодҳо дуруст аст, то аз вобастагии циклӣ, ки метавонад ба шикасти хотира оварда расонад, пешгирӣ кунад.

Масалан истифодаи ARC:

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

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

Тавре ки мебинем, iOS хотираро автоматӣ идора мекунад, асосан ба ҳисоб кардани истинодҳо, на ба ҷамъоварии партовҳо.