Sobes.tech
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 // հիմա օբյեկտը ազատվում է

Այսպիսով, ուժեղ հղումները ուղղակիորեն ազդում են օբյեկտի կյանքի տևողության վրա հիշողության մեջ — քանի դեռ կա առնվազն մեկը, օբյեկտը կենդանի է։