Sobes.tech
Junior — Middle

Ar galite paaiškinti, kaip veikia MRC mechanizmas?

sobes.tech AI

Atsakymas iš AI

MRC (Rankiniu būdu nuorodų skaičiavimas) yra atminties valdymo mechanizmas iOS, kuriame programuotojas pats atsako už nuorodų skaičių objektuose.

Veikimo principas:

  • Kiekvienas objektas turi nuorodų skaitiklį.
  • Kuriant arba priskiriant objektą, skaitiklis didėja (retain).
  • Kai atlaisvinama nuoroda, skaitiklis mažėja (release).
  • Kai skaitiklis pasiekia nulį, objektas sunaikinamas.

Pavyzdys Objective-C:

NSObject *obj = [[NSObject alloc] init]; // skaitiklis = 1
[obj retain]; // skaitiklis = 2
[obj release]; // skaitiklis = 1
[obj release]; // skaitiklis = 0, objektas ištrinamas

Svarbu rankiniu būdu iškviesti retain ir release, kad išvengtumėte atminties nutekėjimo ar ankstyvo objektų ištrynimo. Šiuolaikiniuose iOS projektuose dažniau naudojamas ARC (Automatinis nuorodų skaičiavimas), kuris automatizuoja šį procesą.