Junior — Middle
Šta znači smeštaj klase u oblasti dinamičke memorije (heap) i zašto se to radi?
sobes.tech АИ
Одговор од АИ
Положај класе у области динамичке меморије (heap) значи да се примерци те класе креирају и чувају у heap-у, а не у стеку. У iOS-у (и уопште у објектно-оријентисаним језицима) објекти класа обично се алоцирају у heap-у како би се обезбедило динамичко управљање временом живота објеката.
Ово се ради да:
- Објекти могу постојати независно од области видљивости функције у којој су креирани.
- Управљати временом живота објекта ручно или аутоматски помоћу бројања референци (ARC у iOS-у).
- Омогућити креирање објеката произвољне величине и сложености.
Пример у Swift-у:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
func createPerson() {
let person = Person(name: "Иван") // објекат се креира у heap-у
print(person.name)
}
Овде, објекат Person се креира у heap-у, а променљива person је референца на тај објекат. Када променљива изађе из области, објекат може бити избрисан ако нема других референци на њега.