Sobes.tech
Junior — Middle

МРЦ термин чӣ маъно дорад ва дар чӣ иборат аст, метавонед шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

MRC (Ҳолӣ Ҳисоботи Мавҷудият) — механизми идоракунии хотира аст, ки дар он барномасозӣ масъул аст барои ҳисоб кардани истинодҳо ба объект ва озод кардани хотира вақте ки объект дигар лозим нест.

Дар 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, ки инро автоматӣ мекунад.