Sobes.tech
Junior — Middle

Օգտագործում է iOS ավտոմատ հիշողության մաքրման համակարգը ռեսուրսների կառավարման համար:

sobes.tech AI

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

iOS-ը ավանդական իմաստով ավտոմատ հիշողության մաքրման համակարգ չի օգտագործում, ինչպես օրինակ JavaScript կամ Java-ում գարշահավաքիչը։ Փոխարենը, iOS-ը օգտագործում է հիշողության կառավարման համակարգ, որը կոչվում է ARC (Automatic Reference Counting)։

ARC-ը ավտոմատ կերպով հետևում է օբյեկտների հղումների թվին և ազատում է հիշողությունը, երբ օբյեկտը այլևս չի օգտագործվում։ Ծրագրավորողը չի գրում կոդ հիշողությունը ձեռքով ազատելու համար, բայց պետք է հետևի հղումների ճիշտ կառավարմանը՝ խուսափելու համար ցիկլային կախվածություններից, որոնք կարող են հանգեցնել հիշողության լքման։

ARC-ի օգտագործման օրինակ՝

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

var person1: Person? = Person(name: "Иван")
var person2 = person1  // հղումների հաշվիչը մեծանում է
person1 = nil         // հղումների հաշվիչը նվազում է, օբյեկտը դեռ գոյություն ունի
person2 = nil         // հղումների հաշվիչը դառնում է 0, օբյեկտը ազատվում է

Այսպիսով, iOS-ը ավտոմատ կերպով կառավարում է հիշողությունը՝ հղումների հաշվարկի հիման վրա, ոչ թե աղբարկղի հավաքման։