MRC термин эмне экенин жана анын мааниси эмнеде экенин түшүндүрө аласызбы?
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 болсо бул процессти автоматташтырат.