Junior — Middle
Программада маалыматтарды сактоо үчүн эс тутумдун түзүмү кандай уюштурулган?
sobes.tech AI
AIден жооп
iOS'да, программада маалыматтарды сактоо үчүн эс тутум түзүмү адатта төмөнкүдөй уюштурулган:
- Тизмек (Stack): жергиликтүү өзгөрмөлөрдү жана функция чакырууларын сактайт. Жылдам бөлүштүрүү жана бошотуу.
- Куча (Heap): функция чакыруусунан узак жашаган объекттер жана структуралар үчүн динамикалык эс тутум бөлүштүрүү.
- Маалымат сегменти: статикалык жана глобалдык өзгөрмөлөр үчүн.
- Код сегменти: программа машиналык коду үчүн.
Мисалы, Swift же Objective-Cде класс объектисин түзгөндө, анын үчүн эс тутум кучада бөлүнөт, жана объектке шилтеме стекте сакталат. iOSтогу автоматтык эс тутум башкаруу ARC (Automatic Reference Counting) аркылуу ишке ашырылат, ал объекттерге шилтемелердин санын көзөмөлдөйт жана аларга муктаж болбой калганда эс тутумду бошотот.
Мисал:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
func createPerson() {
let person = Person(name: "Ivan") // объект кучада, шилтеме стекте
print(person.name)
} // функциядан чыгып жатканда шилтеме жоголот, ARC объектти бошотот, эгер башка шилтемелер жок болсо