Sobes.tech
Junior — Middle

Երբ է տեղի ունենում հիշողության ավտոմատ ազատում այն օբյեկտի համար, որի մասին ցույց է տալիս ուժեղ հղումների հաշվիչը, և այն հասանելի չէ?

sobes.tech AI

Պատասխան AI-ից

Ավտոմատ կերպով հիշողության ազատում տեղի է ունենում այն ժամանակ, երբ ուժեղ հղումների հաշվիչը այդ օբյեկտի համար հասնում է զրոյի, այսինքն՝ երբ ոչ մի ուժեղ հղում չի ցույց տալիս օբյեկտին:

Այս պահին օբյեկտը դառնում է անհասանելի և կարող է հեռացվել հիշողության կառավարման համակարգից (iOS-ում ARC): Եթե առնվազն մեկ ուժեղ հղում կա, օբյեկտը մնում է հիշողության մեջ:

Օրինակ՝

class MyClass {}

var a: MyClass? = MyClass() // ուժեղ հղումների հաշվիչը = 1
var b = a                   // ուժեղ հղումների հաշվիչը = 2

a = nil                    // ուժեղ հղումների հաշվիչը = 1
b = nil                    // ուժեղ հղումների հաշվիչը = 0, օբյեկտը ազատվում է

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