Sobes.tech
Junior — Middle

Ինչու է խորհուրդ տրվում օգտագործել թույլ հղում ինքնին (weak self) փակման օգտագործման ժամանակ:

sobes.tech AI

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

Ճկատակի հղում (weak self) օգտագործելը փակման մեջ անհրաժեշտ է ուժեղ հղումային ցիկլերի (retain cycles) կանխարգելման համար, որոնք հանգեցնում են հիշողության արտահոսքի:

Երբ փակումը բռնում է self-ին որպես թույլ հղում, և self պարունակում է այդ փակումը (օրինակ՝ հատկությունում), նրանք միմյանց պահում են, և ոչ մեկը չի ազատվում:

Թույլ հղում օգտագործելու օրինակ՝

someAsyncCall { [weak self] in
    guard let self = self else { return }
    self.doSomething()
}

Այստեղ self-ը բռնվում է թույլ, այնպես որ եթե self օբյեկտը ոչնչացվի նախքան փակման կատարմանը, այն չի պահի այն հիշողության մեջ, ինչը կանխում է արտահոսքը։