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