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 ազատում է օբյեկտը, եթե այլ հղումներ չկան