Junior — Middle
Kas saaksite selgitada, kuidas töötab MRC-mehhanism?
sobes.tech AI
Vastus AI-lt
MRC (Manuaalne viitearvutamine) on mälu haldamise mehhanism iOS-is, kus programmeerija vastutab objektidele viidete arvu arvutamise eest.
Tööpõhimõte:
- Igal objektil on viidete loendur.
- Objekti loomisel või määramisel suureneb loendur (
retain). - Viite vabastamisel loendur väheneb (
release). - Kui loendur jõuab nulli, objekt hävib.
Näide Objective-C-s:
NSObject *obj = [[NSObject alloc] init]; // loendur = 1
[obj retain]; // loendur = 2
[obj release]; // loendur = 1
[obj release]; // loendur = 0, objekt kustutatakse
Oluline on käsitsi kutsuda retain ja release, et vältida mälu lekked või enneaegne objektide kustutamine. Kaasaegsetes iOS projektides kasutatakse sagedamini ARC-d (Automaatne viidete arvutamine), mis automatiseerib selle protsessi.