Sobes.tech
Junior — Middle

Կարող եք բացատրել, թե ինչ է նշանակում MRC տերմինը և ինչ է նրա իմաստը:

sobes.tech AI

Պատասխան AI-ից

MRC (Ձեռնարկային Հղման Հաշվարկ) — դա հիշողության կառավարման մեխանիզմ է, որտեղ ծրագրավորողը ինքն է պատասխանատու օբյեկտի հղումների հաշվարկի և հիշողության ազատման համար, երբ օբյեկտը artık անհրաժեշտ չէ:

iOS և Objective-C-ում, ARC (Ավտոմատ Հղման Հաշվարկ) ի հայտ գալուց առաջ, ծրագրավորողները ձեռքով ավելացնում և նվազեցնում էին հղումների հաշվիչը retain և release մեթոդների միջոցով: Երբ օբյեկտի հղումների հաշվիչը հասնում է զրոյի, օբյեկտի հիշողությունը ազատվում է:

MRC-ի հիմնական սկզբունքը:

  • Ամեն անգամ, երբ պահում եք հղում օբյեկտին, կանչում եք retain:
  • Երբ հղումը այլևս անհրաժեշտ չէ, կանչում եք release:
  • Եթե հղումների հաշվիչը զրոյ է, օբյեկտը ոչնչացվում է:

Այս գործընթացը պահանջում է ուշադրություն՝ խուսափելու հիշողության լքվածությունից (եթե մոռանաք կանչել release) կամ արդեն ազատված հիշողությանը մուտք գործելու սխալներից (եթե շատ շուտ կանչեք release):

Օրինակ:

NSObject *obj = [[NSObject alloc] init]; // հաշվիչը = 1
[obj retain]; // հաշվիչը = 2
[obj release]; // հաշվիչը = 1
[obj release]; // հաշվիչը = 0, օբյեկտը ազատվում է

MRC-ն պահանջում է ծրագրավորողի խիստ վերահսկողություն օբյեկտների կյանքի ցիկլի վրա, հակառակ դեպքում ARC-ն դա ավտոմատացնում է։