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 // այժմ ոչ մի ուժեղ հղում չկա, օբյեկտը կչեղարկվի