Junior — Middle
Чӣ гуна сохтори хотира барои нигоҳдории маълумот дар барнома ташкил шудааст?
sobes.tech AI
Ҷавоб аз AI
Дар iOS структурати ёдгирии маълумот барои нигоҳдорӣ дар барнома одатан чунин ташкил ёфтааст:
- Тасма (Stack): нигоҳ медорад тағйирёбандаҳои маҳаллӣ ва даъватҳои функсияҳоро. Таҷҳизоти зуд ва озодкунии ёдгирӣ.
- Ҳамвор (Heap): барои ҷудо кардани ёдгирии динамик барои объектҳо ва структураҳо, ки дарозтар аз даъвати функсия зиндагӣ мекунанд.
- Сегменти маълумот: барои тағйирёбандаҳои статикӣ ва глобалӣ.
- Сегменти код: барои коди мошинӣ ёдгирии барнома.
Масалан, вақте ки шумо объекти синфро дар Swift ё Objective-C месозед, ёдгирӣ барои он дар ҳамвор ҷудо карда мешавад, ва истинод ба объект дар тасма нигоҳ дошта мешавад. Идоракунии автоматии ёдгирӣ дар iOS тавассути ARC (Automatic Reference Counting) амалӣ мешавад, ки шумораи истинодҳоро ба объектҳо пайгирӣ мекунад ва вақте ки дигар ниёз нест, ёдгириро озод мекунад.
Масалан:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
func createPerson() {
let person = Person(name: "Ivan") // объект дар ҳамвор, истинод дар тасма
print(person.name)
} // пас аз баромадан аз функсия, истинод хориҷ мешавад, ARC объектро озод мекунад, агар дигар истинодҳо набошанд