Junior — Middle
Objective-C'da avtomatik xotira boshqaruvi ARC ning ishlash prinsipi haqida tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
ARC (Avtomatik Referanslar Hisobi) Objective-C da xotira boshqarish mexanizmi bo‘lib, u avtomatik tarzda obyektlarga bo‘lingan referenslar sonini kuzatadi va obyekt endi ishlatilmay qolganida xotirani bo‘shatadi.
ARC ning ishlash prinsipi referenslar hisobiga (retain count) asoslangan:
- Ob'ekt yaratilganda, uning hisoblagichi 1 ga teng.
- Ob'ekt yangi o‘zgaruvchiga tayinlanganda, hisoblagich oshadi (retain).
- O‘zgaruvchi ko‘lamdan chiqsa yoki nil ga tayinlansa, hisoblagich kamayadi (release).
- Agar hisoblagich 0 ga yetgan bo‘lsa, obyekt avtomatik tarzda xotiradan o‘chiriladi.
Misol:
NSObject *obj = [[NSObject alloc] init]; // retain count = 1
self.property = obj; // retain count oshadi
obj = nil; // retain count kamayadi
// Ob'ektga bo‘lgan barcha referenslar yo‘qolganida, xotira avtomatik tarzda bo‘shatiladi
Dasturchi retain/release chaqirishni aniq qilishiga hojat yo‘q, ARC bu chaqiruvlarni kompilyatsiya jarayonida qo‘shadi, bu esa xotira boshqarishdagi xatoliklar, masalan, oqishlar yoki ikki marta bo‘shatish ehtimolini kamaytiradi.