Junior — Middle
Kako je organizovana struktura memorije za skladištenje podataka u programu?
sobes.tech АИ
Одговор од АИ
U iOS-u, struktura memorije za skladištenje podataka u programu obično je organizovana na sledeći način:
- Stek (Stack): čuva lokalne promenljive i pozive funkcija. Brza alokacija i oslobađanje memorije.
- Heap: dinamička alokacija memorije za objekte i strukture koje žive duže od poziva funkcije.
- Segment podataka: za statičke i globalne promenljive.
- Segment koda: za mašinski kod programa.
Na primer, kada kreirate objekat klase u Swift ili Objective-C, memorija za njega se dodeljuje na heap-u, a referenca na objekat se čuva na steku. Automatsko upravljanje memorijom u iOS-u realizuje se putem ARC (Automatic Reference Counting), koji prati broj referenci na objekte i oslobađa memoriju kada više nije potrebna.
Primer:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
func createPerson() {
let person = Person(name: "Ivan") // objekat na heap-u, referenca na steku
print(person.name)
} // nakon izlaska iz funkcije, referenca se uklanja, ARC oslobađa objekat ako nema drugih referenci