Sobes.tech
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.