Junior — Middle
Jak je organizována struktura paměti pro ukládání dat v programu?
sobes.tech AI
Odpověď od AI
Ve iOS je struktura paměti pro ukládání dat v programu obvykle organizována takto:
- Zásobník (Stack): ukládá místní proměnné a volání funkcí. Rychlá alokace a uvolnění paměti.
- Hromada (Heap): dynamická alokace paměti pro objekty a struktury, které žijí déle než volání funkce.
- Datový segment: pro statické a globální proměnné.
- Segment kódu: pro strojový kód programu.
Například, když vytvoříte objekt třídy ve Swift nebo Objective-C, paměť pro něj je alokována na hromadě a odkaz na objekt je uložen na zásobníku. Automatické řízení paměti v iOS je realizováno přes ARC (Automatic Reference Counting), který sleduje počet odkazů na objekty a uvolňuje paměť, když již není potřeba.
Příklad:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
func createPerson() {
let person = Person(name: "Ivan") // objekt na hromadě, odkaz na zásobníku
print(person.name)
} // po opuštění funkce je odkaz odstraněn, ARC uvolní objekt, pokud nejsou jiné odkazy