Junior — Middle
Ինչպե՞ս է ծրագրավորման լեզվում ուժեղ հղումների օգտագործումը ազդում օբյեկտի գոյության տևողության վրա հիշողության մեջ։
sobes.tech AI
Պատասխան AI-ից
iOS- ում (և Swift/Objective-C- ում) ուժեղ (strong) հղումները սովորական հղումներ են օբյեկտներին, որոնք ավելացնում են օբյեկտի հղումների հաշվիչը։ Երբ առնվազն մեկ ուժեղ հղում կա օբյեկտին, այն չի ջնջվի հիշողությունից։
Սա նշանակում է, որ օբյեկտը շարունակում է գոյություն ունենալ հիշողության մեջ, քանի դեռ կան ուժեղ հղումներ։ Երբ բոլոր ուժեղ հղումները հեռացվեն կամ դառնան nil, օբյեկտը ավտոմատ կերպով ազատվում է (ARC — Ավտոմատ հղումների հաշվարկը)։
Օրինակ՝
class Person {
var name: String
init(name: String) { self.name = name }
}
var person1: Person? = Person(name: "Alex") // ուժեղ հղում
var person2 = person1 // ավելացնում է հղումների հաշվիչը
person1 = nil // օբյեկտը դեռ գոյություն ունի, քանի որ person2 հղում է անում
person2 = nil // հիմա օբյեկտը ազատվում է
Այսպիսով, ուժեղ հղումները ուղղակիորեն ազդում են օբյեկտի կյանքի տևողության վրա հիշողության մեջ — քանի դեռ կա առնվազն մեկը, օբյեկտը կենդանի է։