Junior — Middle
Objective-C-деги автоматтык эс тутумду башкаруу ARC иштөө принцибин түшүндүрө аласызбы?
sobes.tech AI
AIден жооп
ARC (Автоматтык шилтемелердин санын эсептөө) — Objective-Cдеги эс тутумду башкаруу механизми, ал автоматтык түрдө объекттерге шилтемелердин санын көзөмөлдөйт жана объект колдонулбай калганда эс тутумду бошотот.
ARC иштөө принциби шилтемелердин санын эсептөө (retain count) негизделген:
- Объект түзүлгөндө, анын эсептөөчүсү 1 болот.
- Объект жаңы өзгөрмөгө берилгенде, эсептөөчүсү өсөт (retain).
- Өзгөрмө чегинен чыгып же nilге берилсе, эсептөөчүсү төмөндөйт (release).
- Эсептөөчүсү 0гө жеткенде, объект автоматтык түрдө эс тутумдан өчүрүлөт.
Мисал:
NSObject *obj = [[NSObject alloc] init]; // retain count = 1
self.property = obj; // эсептөөчүсү өсөт
obj = nil; // эсептөөчүсү төмөндөйт
// Бардык шилтемелер жок болуп калганда, эс тутум автоматтык түрдө бошотулат
Дамытуучу explicitly retain/release чакырбайт, ARC бул чакырууларды компиляция учурунда кошот, бул эс тутумду башкаруу катачылыктарынын, мисалы, агып кетүүлөрдүн же эки эсе бошотулуштун, мүмкүнчүлүгүн азайт.