Sobes.tech
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