Junior — Middle
Դուք օգտագործե՞լ եք ձեր նախագծերում Unowned տեսակի հղումային փոփոխականներ։
sobes.tech AI
Պատասխան AI-ից
Այո, iOS նախագծերում ես օգտագործել եմ unowned տեսակի հղումներ:
unowned — դա թույլ հղում է, որը չի ավելացնում հղումների հաշվիչը, բայց ենթադրում է, որ հղվող օբյեկտը միշտ կլինի օգտագործման ժամանակ:
Այսը օգտակար է ուժեղ հղումների ցիկլերը կանխելու համար, օրինակ, փակման մեջ կամ փոխադարձ հղումներում օբյեկտների միջև, երբ մեկը երաշխավորում է, որ այն երկար ապրելու է մյուսից:
unowned օգտագործման օրինակ՝
class Person {
let name: String
var apartment: Apartment?
init(name: String) {
self.name = name
}
}
class Apartment {
let unit: String
unowned let tenant: Person
init(unit: String, tenant: Person) {
self.unit = unit
self.tenant = tenant
}
}
let john = Person(name: "John")
let apt = Apartment(unit: "4A", tenant: john)
john.apartment = apt
Այստեղ, tenant հռչակված է որպես unowned, քանի որ բնակարանը չպետք է գոյություն ունենա առանց վարձուի, և դա կանխում է ուժեղ հղումների ցիկլը։