Junior — Middle
Ի՞նչ իրավիճակներում պետք է օգտագործել `unowned` բանալի բառը Swift-ում։
sobes.tech AI
Պատասխան AI-ից
Swift- ում unowned բանալի բառը օգտագործվում է որպես թույլ թղթապանակ, որը չի հանդիսանում ընտրովի և չի ավելացնում օբյեկտի հղումների հաշվիչը:
Այն օգտագործվում է այն իրավիճակներում, երբ օբյեկտների միջև կա ցիկլային հղում, բայց երաշխավորվում է, որ հղված օբյեկտը երկար ժամանակ կլինի unowned հղումից ավելի երկար:
Օրինակ, "մայր — երեխա" հարաբերություններում, որտեղ երեխան պահպանում է unowned հղում մայրին, որպեսզի խուսափի ցիկլից:
class Parent {
var child: Child?
}
class Child {
unowned let parent: Parent
init(parent: Parent) {
self.parent = parent
}
}
let dad = Parent()
let kid = Child(parent: dad)
dad.child = kid
Եթե այն օբյեկտը, որի վրա հղում է unowned, ջնջվի, փորձել մուտք գործել այդ հղմանը կհանգեցնի ժամանակային սխալի: Այդ պատճառով, unowned-ը հարմար է, երբ օբյեկտի կյանքի ցիկլը երաշխավորված է, որ երկար կլինի նրա հղումից ավելի երկար: