Sobes.tech
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.