Sobes.tech
Junior — Middle

Կա՞ն արդյոք ավտոմատ կերպով հեռացվի օբյեկտը հիշողությունից, եթե այն ցույց են տալիս երեք թույլ (weak) և մեկ պարտադիր չհամարող (unowned) հղումներ։

sobes.tech AI

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

Օբյեկտը ավտոմատ կերպով կհեռացվի հիշողությունից, եթե նրա վրա չմնան ուժեղ (strong) հղումներ: Թույլ (weak) և պարտադիր չհաշվառվող (unowned) հղումները չեն ավելացնում օբյեկտի հղումների հաշվին: Ձեր դեպքում, եթե միայն երեք weak և մեկ unowned հղում կա, բայց ոչ մի strong, ապա օբյեկտը համարվում է ոչ օգտագործվող և կդադարեցվի:

Օրինակ:

class MyClass {}

var strongRef: MyClass? = MyClass() // ուժեղ հղում
weak var weakRef1 = strongRef
weak var weakRef2 = strongRef
weak var weakRef3 = strongRef
unowned var unownedRef = strongRef!

strongRef = nil // այժմ ոչ մի ուժեղ հղում չկա, օբյեկտը կչեղարկվի