Sobes.tech
Junior — Middle

Чӣ гуна тақсим ва озод кардани хотира барои намудҳои маълумоти истинодӣ сурат мегирад?

sobes.tech AI

Ҷавоб аз AI

Дар iOS, барои намудҳои истинод (масалан, синфҳо), хотира ба таври динамикӣ дар heap тақсим мешавад. Вақте ки объекте аз синф эҷод мешавад, системаи он хотирасозиро дар heap анҷом медиҳад ва ба он ишора мекунад.

Роҳати озод кардани хотира тавассути ҳисобкунии автоматии ишораҳо (ARC — Automatic Reference Counting) сурат мегирад. Ҳар як объект ҳисобкунии ишораҳоро нигоҳ медорад — шумораи ишораҳои фаъол ба он. Вақте ки ишора нав эҷод мешавад, ҳисобкунак меафзояд, ва вақте ки ишора тоза ё nil мешавад, кам мешавад. Вақте ки ҳисобкунак ба сифр мерасад, объект автоматӣ аз хотира тоза мешавад.

Масалан:

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 инро автоматӣ идора мекунад.