Junior — Middle
Ako je organizovaná štruktúra pamäte na ukladanie údajov v programe?
sobes.tech AI
Odpoveď od AI
V iOS je struktúra pamäte na ukladanie údajov v programe zvyčajne organizovaná nasledovne:
- Zásobník (Stack): ukladá lokálne premenné a volania funkcií. Rýchla alokácia a uvoľnenie pamäte.
- Hromada (Heap): dynamická alokácia pamäte pre objekty a štruktúry, ktoré žijú dlhšie ako volanie funkcie.
- Segment dát: pre statické a globálne premenné.
- Segment kódu: pre strojový kód programu.
Napríklad, keď vytvoríte objekt triedy vo Swift alebo Objective-C, pamäť pre neho je alokovaná na hromade a odkaz na objekt je uložený na zásobníku. Automatické riadenie pamäte v iOS je realizované prostredníctvom ARC (Automatic Reference Counting), ktorý sleduje počet odkazov na objekty a uvoľňuje pamäť, keď už nie je potrebná.
Príklad:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
func createPerson() {
let person = Person(name: "Ivan") // objekt na hromade, odkaz na zásobníku
print(person.name)
} // po opustení funkcie je odkaz odstránený, ARC uvoľní objekt, ak nie sú iné odkazy