Ի՞նչ է անհրաժեշտ ուժեղ հղումները Swift ծրագրավորման լեզվում։
sobes.tech AI
Պատասխան AI-ից
Swift- ում ուժեղ հղումները (strong references) անհրաժեշտ են, որպեսզի օբյեկտը մնա հիշողության մեջ, քանի դեռ առնվազն մեկ ուժեղ հղում կա նրա վրա: Դրանք հանդիսանում են նախնական վարքագիծը հղման տիպերի (դասեր) համար:
Երբ փոփոխական կամ հաստատում հղում է անում դասի օրինակին, այս հղումը ըստ նախնական կարգավորումների ուժեղ է: Դա ավելացնում է այդ օրինակին հղումների հաշվիչը (reference count): Երբ բոլոր ուժեղ հղումները դեպի օրինակ վերանան (օրինակ, երբ փոփոխականները դուրս գան շրջանակից կամ նրանց նշանակվի nil), հղումների հաշվիչը հասնում է զրոյի, և հիշողության կառավարումը համակարգը (ARC - Ավտոմատ հղումների հաշվարկը) ազատում է այդ օրինակով զբաղեցրած հիշողությունը:
Ուժեղ հղումների հիմնական գործառույթը՝ ապահովել, որ օբյեկտը չպետք է վաղաժամ դեալոկատվի, մինչ նա դեռ օգտագործվում է: Անհրաժեշտ է, որ ուժեղ հղումները չլինեն, որպեսզի օբյեկտները կարող են ցանկացած ժամանակ ջնջվել, ինչը հանգեցնում է մուտք գործելու սխալների (կապի սողանքային սխալներ):
Սակայն, ուժեղ հղումները կարող են առաջացնել հյուսվածքներ (retain cycle), երբ երկու կամ ավելի օբյեկտներ ունեն ուժեղ հղումներ միմյանց, և ոչ մեկը չի կարող ազատվել, նույնիսկ եթե այլ արտաքին հղումներ չունեն: Այդպիսի հյուսվածքները կանխելու համար օգտագործվում են թույլ (weak) և առանց սեփականատիրոջ (unowned) հղումներ։