Junior — Middle
Ինչպե՞ս կարող եք ստեղծել տվյալների կառուցվածք, որը պահպանում է թեթև հղումներ օբյեկտների վրա:
sobes.tech AI
Պատասխան AI-ից
iOS-ում (Swift/Objective-C) օբյեկտների վրա թույլ չտվող հղումները պահելու համար տվյալների կառուցվածք ստեղծելու համար օգտագործվում է NSMapTable կամ NSHashTable դասը թույլ տված հղումների տարբերակով:
Թույլ տված հղումները թույլ են տալիս օբյեկտներին ազատվել հիշողությունից, եթե նրանց վրա չկա ուժեղ հղում, ինչը կանխում է հիշողության լճացումը:
Swift-ում NSMapTable-ի օրինակ՝
let mapTable = NSMapTable<NSString, AnyObject>.weakToWeakObjects()
կողմնային նշում = "key" որպես NSString
օբյեկտ = NSObject()
mapTable.setObject(օբյեկտ, forKey: կողնային նշում)
օբյեկտ = nil // այժմ օբյեկտը կարող է հեռացվել հիշողությունից
եթե արժեք = mapTable.object(forKey: կողնային նշում) {
տպել("Օբյեկտը գոյություն ունի")
} այլ {
տպել("Օբյեկտը հեռացվել է")
}
Կարող եք նաև օգտագործել Weak wrapper — թաղանթ, որը ներքինում ունի թույլ հղում, եթե անհրաժեշտ է ձեր սեփական տվյալների կառուցվածքը:
Այսպիսով, թույլ հղումները պահելու համար օգտագործվում է NSMapTable՝ weak-to-weak կամ weak-to-strong կոնֆիգուրացիայով՝ ըստ խնդրի։